Segue uma aplicação do SHA256 para geração de hashs em cadeia para validação de dados em uma planilha qualquer.
Basta criar um módulo no ambiente de desenvolvedor do Excel (Alt+F11) e colar o código abaixo. Este código habilitará uma função de criptografia SHA256. Para utilizar esta função, após código inserido em um módulo, basta digitar em uma célula qualquer “=HASH_SHA256_RnC()” e selecionar a célula que deseja criar uma hash.
A seguir, disponibilizo o download com o código aberto de uma planilha pronta. Lembre de habilitar a macro do Excel!


Código SHA256 a ser copiado e colado em um módulo:
Option Explicit
Public Function HASH_SHA256_RnC(ByVal sInput As String) As String
HASH_SHA256_RnC = SHA256(sInput)
End Function
Public Function SHA256(sInput As String, Optional bB64 As Boolean = 0) As String
Dim Encoder As Object
Set Encoder = CreateObject("System.Text.UTF8Encoding")
Dim Encoder_SHA256 As Object
Set Encoder_SHA256 = CreateObject("System.Security.Cryptography.SHA256Managed")
Dim TextToHash() As Byte
TextToHash = Encoder.GetBytes_4(sInput)
Dim bytes() As Byte
bytes = Encoder_SHA256.ComputeHash_2((TextToHash))
If bB64 = True Then
SHA256 = ConvToBase64String(bytes)
Else
SHA256 = ConvToHexString(bytes)
End If
Set Encoder = Nothing
Set Encoder_SHA256 = Nothing
End Function
Public Function ConvToBase64String(vIn As Variant) As Variant
Dim oD As Object
Set oD = CreateObject("MSXML2.DOMDocument")
With oD
.LoadXML "<root />"
.DocumentElement.DataType = "bin.base64"
.DocumentElement.nodeTypedValue = vIn
End With
ConvToBase64String = Replace(oD.DocumentElement.Text, vbLf, "")
Set oD = Nothing
End Function
Public Function ConvToHexString(vIn As Variant) As Variant
Dim oD As Object
Set oD = CreateObject("MSXML2.DOMDocument")
With oD
.LoadXML "<root />"
.DocumentElement.DataType = "bin.Hex"
.DocumentElement.nodeTypedValue = vIn
End With
ConvToHexString = Replace(oD.DocumentElement.Text, vbLf, "")
Set oD = Nothing
End Function
