linux - 尝试以二进制形式输出 Openssl Hash 以比较位

标签 linux hash openssl

<分区>

我在学校工作的实验室的一小部分要求我获取一个文件,使用 openssl sha256 散列值,然后更改 1 位,重新散列并比较值。具体来说,他们想要我:

“你可以写一个小程序来计算H1和H2有多少位相同”

目前输出形式是十六​​进制转储,每当我尝试将 -binary 添加到 openssl 命令时,例如:

openssl dgst -sha256 -binary largefile.txt > hashInBinary.txt

我不断收到我无法阅读的符号,而不是 1 和 0。在这一点上,我真的不确定如何以任何其他方式处理这个问题。我不明白为什么我在添加 -binary 时没有收到哈希值的二进制格式 (1010101011)。有什么想法吗?

最佳答案

基于“我不断收到我无法阅读的符号”,我假设您实际上得到了二进制输出。所以 1 和 0。问题是您的编辑器试图以可读格式表示它,因此它需要某种编码(假设是 ascii)。它读取一个字节并将其打印在屏幕上。但是,您希望查看二进制级别的值,而不是字节级别的值。

您可以使用xxd -b hashInBinary.txt 来查看散列的结果。

关于linux - 尝试以二进制形式输出 Openssl Hash 以比较位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46593446/

相关文章:

linux - 从一组文件 linux 中删除空格

algorithm - 请解释这段用于计算字符串哈希码的代码

ruby-on-rails - 将 XML 转换为 Ruby 哈希时保留属性

authentication - CA 更新后的客户端证书

windows - OpenSSL Windows x64 编译错误

linux - 如何从 cron 条目中自动清除 perl 脚本日志?

PHP 将命令 "mailq"的输出获取到数组

linux - 在不使用双引号的情况下搜索包含当前日期的日志文件

python - 算法 - 字符串相似度分数/哈希

c - 如何使用 openssl C API 验证 pkcs#12 证书 (.PXF) 的密码?