Хеш-функция пароля для Excel VBA

В наши дни вы можете использовать excel-macro библиотеку .NET из VBA. Следующее hash работает для меня в Excel ms-excel 2016. Возвращает хеш в шестнадцатеричном workbook виде в верхнем регистре.

Public Function SHA1(ByVal s As String) As String
    Dim Enc As Object, Prov As Object
    Dim Hash() As Byte, i As Integer

    Set Enc = CreateObject("System.Text.UTF8Encoding")
    Set Prov = CreateObject("System.Security.Cryptography.SHA1CryptoServiceProvider")

    Hash = Prov.ComputeHash_2(Enc.GetBytes_4(s))

    SHA1 = ""
    For i = LBound(Hash) To UBound(Hash)
        SHA1 = SHA1 & Hex(Hash(i) \ 16) & Hex(Hash(i) Mod 16)
    Next
End Function

excel

vba

hash

sha1

2022-10-04T09:06:23+00:00