Forum Discussion
duco gm mansvelder
Nov 23, 2018Copper Contributor
hash sha256 calculation
I want to calculate the hasvalue f.e. sha256 from the values and/or the text in a specific cell or range of cells. How do i calculate this with excel?
Please check this discussion https://superuser.com/questions/550592/is-there-an-excel-function-to-create-a-hash-value if helps
- duco gm mansvelderCopper Contributor
Hi Sergei,
This sample did the trick indeed.... however the "EncodeBase64" function leads to an #VALUE! when called from the spreadsheet. What can be the explaination for this?
Public Function BASE64SHA1(ByVal sTextToHash As String)
Dim asc As Object
Dim enc As Object
Dim TextToHash() As Byte
Dim SharedSecretKey() As Byte
Dim bytes() As Byte
Const cutoff As Integer = 5Set asc = CreateObject("System.Text.UTF8Encoding")
Set enc = CreateObject("System.Security.Cryptography.HMACSHA1")TextToHash = asc.GetBytes_4(sTextToHash)
SharedSecretKey = asc.GetBytes_4(sTextToHash)
enc.Key = SharedSecretKeybytes = enc.ComputeHash_2((TextToHash))
BASE64SHA1 = EncodeBase64(bytes)
BASE64SHA1 = Left(BASE64SHA1, cutoff)Set asc = Nothing
Set enc = NothingEnd Function
Private Function EncodeBase64(ByRef arrData() As Byte) As String
Dim objXML As Object
Dim objNode As ObjectSet objXML = CreateObject("MSXML2.DOMDocument")
Set objNode = objXML.createElement("b64")objNode.DataType = "bin.base64"
objNode.nodeTypedValue = arrData
EncodeBase64 = objNode.textSet objNode = Nothing
Set objXML = NothingEnd Function
- TheomatCopper Contributor
duco gm mansvelder for me the #VALUE were because I hadn't activated the .Net Framework 3.0 Library. Once activated the hashes were showing. Feel free to message if you want more details, working solution etc.
You can get how to activate .Net 3.0 from a quick google.. It's pretty simple.
Press windows Key. Type "windows features" and press enter. Select .Net 3.5 (contains .Net 2.0 and 3.0) and click okay. This should install it. A reboot might be required.https://learn.microsoft.com/en-us/dotnet/framework/install/dotnet-35-windows