我试图在python和shell中使用md5(在OSX上使用zsh)。
我明白了:
在python中:
>>> hashlib.md5("zoo".encode('utf-8')).hexdigest()
'd2cbe65f53da8607e64173c1a83394fe'
使用Zsh
$ echo "zoo" | md5
ace34ff0a763d9f382cbe6b219fcac7c
因为我也有:
>>> hashlib.md5("zoo\n".encode('utf-8')).hexdigest()
'ace34ff0a763d9f382cbe6b219fcac7c'
在Python中,我认为我的zsh命令添加了一个(不需要的)尾随' \ n'在对它进行哈希处理之前的字符串。
为什么会发生这种情况,我怎么能避免这种情况?
答案 0 :(得分:3)
你去:
kent$ echo -n 'zoo'|md5sum
d2cbe65f53da8607e64173c1a83394fe
kent$ echo 'zoo'|md5sum
ace34ff0a763d9f382cbe6b219fcac7c
答案 1 :(得分:2)
我刚刚发现:
-s
命令有一个$ md5 -s "zoo"
MD5 ("zoo") = d2cbe65f53da8607e64173c1a83394fe
标志,允许直接以字符串形式传递参数。
所以:
{{1}}
非常愚蠢,我的坏。