【发布时间】:2017-04-14 15:00:28
【问题描述】:
我创建了一个文件并在其中输入了一些随机字符串。
touch tesseract && echo 'TestTestTestTestTest' > tesseract
现在,如果我使用 openssl 计算 base64 哈希 [sha256],我会运行:
cat tesseract | openssl dgst -sha256 | openssl base64 -A
它返回我
KHN0ZGluKT0gMzJjYjA1MTgzNDNhZmY2N2FlMmY5YzUwNDcwNGRiNGE5Njc5MzIyZWVlNTBmMjBiNTMzNjZlYTBiMDY2MWNlZgo=
现在我逐步处理这个哈希,因为,
cat tesseract | openssl dgst -sha256 > partialHash
这给了我
(stdin)= 32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef
让这个哈希为X。
然后我这样做,
echo '32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef' > partialHash
cat partialHash | openssl base64 -A
我得到了不同的结果。这是为什么呢?
我问的原因是因为我使用二进制文件hashdeep,它以32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef 的形式给我散列,我希望将它们转换为base64 编码格式,因为hashdeep 不能产生@ 987654339@ 输出。所以我将中间哈希传递给openssl base64 -A,但得到了不同的结果。
我错过了什么?如何将未编码的哈希X [即32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef] 转换为正确的base64 编码格式?
为简单起见,我们可以假设X 存在于一个文件中,
使用echo '32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef' > file 创建
【问题讨论】:
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?
标签: linux unix hash openssl base64