SHA256哈希从OpenSSL和Sha256Sum实用程序Java不同产生。为什么?

Nambi:

下面是生成SHA256哈希在Java字符串中的Java代码。

public static void main(){

    String data = "hello world";

    // Generate the Sha256 hash using Apache Common Codec library
    String hash = DigestUtils.sha256Hex( data);

    System.out.println("Apache : Sha256hash: "+ hash);

    // Generate Sha 256 hash by using guava library
    final String hashed = Hashing.sha256()
            .hashString(data, StandardCharsets.UTF_8)
            .toString();


    System.out.println("Guava  : Sha256hash: "+ hashed);
}

当我运行该程序,我得到下面的值。这两个哈希值完全相同。

Apache : Sha256hash: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Guava  : Sha256hash: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

现在,我产生的SHA256哈希从命令行字符串“Hello World”。

命令行UTIL SHA2

echo "hello world" | sha2 -256
SHA-256 ((null)) = a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447

OpenSSL的UTIL

echo 'hello world' | openssl dgst -sha256
a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447

当你从这些例子中看到,从命令行生成的值从从Java生成的值不同(Apache和番石榴)

输入字符串是一样的,但是哈希值是不同的。为什么这种差异会发生什么?

戴夫G:

我真的有一个修订这个答案最近。

问题是回声增加了一个新行到您的数据。如果您使用echo -n或者openssl dgst -sha256 <<< 'hello world'你会得到正确的值。

请参阅OpenSSL的外壳,从标准输入创建SHA哈希

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Go sha256与Ubuntu命令sha256sum给出不同的结果?

OpenSSL和Java产生不同的SHA256 RSA签名

SHA256哈希算法使用Common Crypto和OpenSSL在iOS中产生不同的结果

为什么在Debian上用`sha256sum`验证SHA256校验和失败并在Ubuntu上起作用?

为什么sha256哈希键与命令提示符和Powershell不同

为什么在C ++和PHP SHA256哈希之间得到不同的结果?

为什么在检查文件的sha256sum时会得到2个不同的结果?

Java SHA256向PHP SHA256输出不同的哈希吗?

为什么我的Java和命令行SHA256输出不同?

OpenSSL和PHP SHA256摘要不同

为什么我用OpenSSL和Java生成的RSA-SHA256签名不同?

为什么AppLocker使用的SHA256哈希与其他生成器不同?

目标C和Java中的Sha256哈希

SAML令牌:为什么要使用多种哈希/摘要算法:sha256和sha1?

异步SHA256哈希

SHA256哈希计算

SHA256:Swift 和 Java 中的不同输出?

为什么HMAC sha256在PHP和Javascript上返回不同的值

“ md5sum”和“ sha256sum”有什么区别?

为什么 System.Security.Cryptography SHA256 哈希无法通过在线哈希工具解密?

Java Mac sha256哈希与使用包的PHP hmac sha256不匹配?

与Bash进行Sha256Sum求和

Xamarin PCLCrypto SHA256提供不同的哈希

Node.js和Kotlin中的SHA256不同的哈希

OpenSSL和CryptoJS SHA256加密转换

Java SHA256生成与Python中不同的哈希

来自公钥的sha256哈希

Python中的双哈希SHA256

持续使用sha256哈希对象?