Pun*_*rud 5 python macos hashlib python-3.x
如何在终端(Mac/Linux)和Python中获得相同的sha256哈希?
尝试了以下示例的不同版本,并在StackOverflow上搜索.
终奌站:
echo 'test text' | shasum -a 256
Run Code Online (Sandbox Code Playgroud)
c2a4f4903509957d138e216a6d2c0d7867235c61088c02ca5cf38f2332407b00
Python3:
import hashlib
hashlib.sha256(str("test text").encode('utf-8')).hexdigest()
Run Code Online (Sandbox Code Playgroud)
'0f46738ebed370c5c52ee0ad96dec8f459fb901c2ca4e285211eddf903bf1598'
更新:与为什么Python创建的MD5哈希与使用echo和md5sum在shell中创建的哈希不同?因为在Python3中你需要显式编码,我需要Python中的解决方案,而不仅仅是在终端中."复制"不适用于文件:
example.txt内容:
test text
Run Code Online (Sandbox Code Playgroud)
终奌站:
shasum -a 256 example.txt
Run Code Online (Sandbox Code Playgroud)
c2a4f4903509957d138e216a6d2c0d7867235c61088c02ca5cf38f2332407b00
在echo内置的将添加一个换行符产生一个不同的字符串,因而不同的哈希值.这样做
echo -n 'test text' | shasum -a 256
Run Code Online (Sandbox Code Playgroud)
如果你确实打算对新行进行哈希处理(我反对这个建议,因为它违反了POLA),它需要在python中修复,就像这样
hashlib.sha256("{}\n".format("test text").encode('utf-8')).hexdigest()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |