用 VBA 代码算出来的 SHA256 值,有时候跟网上的计算结果相同,有时候却完全不一样。。

2020-07-07 17:21:03 +08:00
 WesleyNZ
我把这个
https://blog.csdn.net/xhhjin/article/details/50520621

我按照这个人的帖子,(机器 mac os 15.3,office2019 )

如果是比较短的英文句子,那么加密结果
http://www.jsons.cn/sha/ 提供的完全一模一样,
我以为这个函数就万能的。
2 楼就是原文,你们试试看:



EXCEL 的 VBA 给出的函数返回值是
1cdac470e33461914fd8792d82e42cb873412e8f4bcbb5a0b2d195d9aced6d26

http://www.jsons.cn/sha/ 提供的返回值是
8dd0390fe0b02f168b5c9e2b39e0aea17d597a091c39ab3a1580b1e4a25d10b7

这叫我怎么办???
到底出了什么问题呢???

这段 VBA 代码还警告了这件事,意思就是不同系统算出来的 sha256 不一样吗??太奇怪了吧
'
' *** CAUTION ***
' See the comment attached to the SHA256 method below regarding use on systems
' with different character sets.
2874 次点击
所在节点    程序员
30 条回复
WesleyNZ
2020-07-08 13:23:17 +08:00
@GM 附言 1 是加密内容 一点中文的痕迹都没有
附言 2 是各种 sha256 加密的结果。。
ragnaroks
2020-07-08 15:23:01 +08:00
附言 1 中的文本,我在网页,7zip,hashtab 均得出同样的(与你相同)结果
ragnaroks
2020-07-08 15:23:23 +08:00
15153c40c0ea6019ec55e0446d0f3afc4c16e9210af5225b5db91baef1550bff
GM
2020-07-08 15:24:33 +08:00
@WesleyNZ

shasum -a 256 sha.txt
15153c40c0ea6019ec55e0446d0f3afc4c16e9210af5225b5db91baef1550bff sha.txt

这是我这边的结果,这个结果肯定是对的。

你要注意一下,文件内容要完全一致才行,一个字符都不能动,包括回车换行,建议仅仅使用字母来测试,不要用标点符号、空格、回车等等特殊字符。
GM
2020-07-08 15:26:45 +08:00
@WesleyNZ 你试试这个(纯字母,不包括后面的回车换行):

aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd


这是我这边的结果:28b211ed1bfd2fbe3ff43c6a55e2086649c65656ef8311e94251d0fa00f4b881
huawuya
2020-07-08 17:41:59 +08:00
楼主,注意你附言 1 文字中的 “I don’t careqwewqeqweqw”,这里面那个 n't 中间的单引号不是标准的 asc 字符里的单引号,而是中文的单引号。所以你这段文字不是全英文的。

asdasdasdasdasdasd's attempt 这句中间的单引号是英文的。

另外 sha256 计算文件 hash 的时候还要注意文字最后是否有换行符,有没有换行符结果也是不一样的。
huawuya
2020-07-08 17:47:23 +08:00
把那个中文单引号改成英文单引号后,sha256 结果网页工具和 linux 上的 sha256sum 结果是一致的。

I have learnt a lot today, thank my family for supporting me for all these years; thanks rewrwerwerewrwera for being my friend supporting me, Thanks eqweqdwasdasdwqqwefor listening to me andxxxxx relative wxxxxxxx, Thanks asdasdasdasdasdasd's attempt for iqweqeqweqew, failed tho but i really am thankful for what he has done. Xxxx qweqweqwewq, xxxxxxxxxxxfriends. I don't careqwewqeqweqw ewq. sadasddasdasdasdh, dsadasdasdasdasdad. qwewqeqweqweqweqwewqeqweqw! July 7 2020

d7276d1345c0438e5cb7d10829006239ff676ec39fbf0160fd28773c513c9b16
huawuya
2020-07-08 18:02:09 +08:00
用你那个 VBA 测试了一下,同样的结果
WesleyNZ
2020-07-08 18:17:37 +08:00
@huawuya 应该就是那个单引号引发的血案?
WesleyNZ
2020-07-08 18:22:49 +08:00
@huawuya 你说的计算文件 hash 的意思是,txt 文件吗?我会确保最后没有回车的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/687970

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX