问题描述
我用 python 计算了一个字符串的 sha 总和,但是两个不同的程序输出是不同的。
这是我所做的:
~/$ echo "Tuwile@com.termux" | sha256sum
cc85269412339c15a992fb8766f5d1d6e0c2f0fbab990d4fc569d747503d98a2 -
~/$ python
Python 3.9.1 (default,Jan 8 2021,21:18:33)
[Clang 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489 on linux
Type "help","copyright","credits" or "license" for more information.
>>> import hashlib
>>> r=hashlib.sha256("Tuwile@com.termux".encode())
>>> print(r.hexdigest())
40445c42210abea6b0e681b29d15b163692826128c369834ab3b9e63ac8f6527
>>>
解决方法
默认情况下,echo
将行尾 \n
添加到输出中,它成为 sha256sum
输入的一部分。添加 -n
标志以抑制它:
>>> echo -n "Tuwile@com.termux" | sha256sum
40445c42210abea6b0e681b29d15b163692826128c369834ab3b9e63ac8f6527 -