如何用简短的VBA代码计算字符串的哈希值?
vba吧
全部回复
仅看楼主
level 6
如题
2023年09月05日 15点09分 1
level 4
搜下vba的md5
2023年09月05日 23点09分 2
网上搜了,文心一言也问了,但是就是没有找到能用的
2023年09月06日 00点09分
网页链接 这个不行?
2023年09月06日 01点09分
@sowo 靠谱
2023年09月06日 03点09分
@sowo 想问一下,function里一大堆代码,是自己把MD5算法都算了一遍嘛,是因为VBA本身没有集成一个简便的MD5函数所致?
2023年09月06日 03点09分
level 1
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
以上是转发的,没验证过,但应该可行,利用 VBA 中的 .NET 库。 将哈希返回为大写十六进制。
还有就是自己计算出来,没除非有人帮你写好,不然没什么简单的语句能获得
2023年09月06日 01点09分 3
不是vba的.net库,是用了com的特性
2023年09月06日 03点09分
level 8
[滑稽]咋滴,想搞虚拟货币?
2023年09月11日 06点09分 4
估计是想加密代码
2023年09月11日 06点09分
做文件一致性校验哇,虚拟货币不是VBA能整的
2023年09月11日 06点09分
1