为什么 OpenSSL 会在我的终端中返回不同的 SHA1 哈希输出?
Why would OpenSSL be returning a different SHA1 hash output in my terminal?
我正在尝试使用 SHA1 对一个相当小的值进行哈希处理以进行大学练习。
我是 运行 OpenSSL 1.1.1 2018 年 9 月 11 日。操作系统是 Ubuntu 18.04.1,运行 到 Windows [=29= 的子系统] 1.
运行 以下任意一项;
echo "361448504617" | openssl dgst -SHA1
echo 361448504617 | openssl dgst -SHA1
openssl dgst -sha1 hash.txt
openssl SHA1 hash.txt
Returns:
(stdin)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
(stdin)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
SHA1(hash.txt)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
SHA1(hash.txt)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
如果我使用在线 SHA1 哈希生成器,例如 https://passwordsgenerator.net/sha1-hash-generator/,它 returns:
A599EBBA6735313C848118F6EDB63012163D7581
这也是工作表的答案,也是实验室教师终端的内容returns。
谁能帮我解决这个问题?
嗯,我想通了。
OpenSSL 也在散列换行符,使用 echo 的 -n 参数很容易解决。
echo -n 361448504617 | openssl SHA1
此外,当 OpenSSL 从文件中读取时,我遇到了同样的错误,因为 vim 保存时使用了行尾字符。由 运行 vim 中的以下命令修复:
:set binary
:set noeol
:wq
我正在尝试使用 SHA1 对一个相当小的值进行哈希处理以进行大学练习。
我是 运行 OpenSSL 1.1.1 2018 年 9 月 11 日。操作系统是 Ubuntu 18.04.1,运行 到 Windows [=29= 的子系统] 1.
运行 以下任意一项;
echo "361448504617" | openssl dgst -SHA1
echo 361448504617 | openssl dgst -SHA1
openssl dgst -sha1 hash.txt
openssl SHA1 hash.txt
Returns:
(stdin)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
(stdin)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
SHA1(hash.txt)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
SHA1(hash.txt)= f98a0e600cd960f6c414343748a8dabc5ae9ec0a
如果我使用在线 SHA1 哈希生成器,例如 https://passwordsgenerator.net/sha1-hash-generator/,它 returns:
A599EBBA6735313C848118F6EDB63012163D7581
这也是工作表的答案,也是实验室教师终端的内容returns。
谁能帮我解决这个问题?
嗯,我想通了。
OpenSSL 也在散列换行符,使用 echo 的 -n 参数很容易解决。
echo -n 361448504617 | openssl SHA1
此外,当 OpenSSL 从文件中读取时,我遇到了同样的错误,因为 vim 保存时使用了行尾字符。由 运行 vim 中的以下命令修复:
:set binary
:set noeol
:wq