SHA512哈希在android,php和javascript上有所不同

SHA512哈希在android,php和javascript上有所不同,第1张

概述我使用SHA512哈希在我的应用程序和它的后端之间传输一些加密数据.但是,我有一个奇怪的情况,不知道是什么原因导致它.所以,我有以下设置测试:Android2xSHA512Android1xSHA512–>CryptoJS1xSHA512PHP2xSHA512所以,当我进行第一次2xAndroid哈希时,我得到的结果与我做

我使用SHA512哈希在我的应用程序和它的后端之间传输一些加密数据.但是,我有一个奇怪的情况,不知道是什么原因导致它.

所以,我有以下设置测试:

Android 2x SHA512

AndroID 1x SHA512 – > CryptoJs 1x SHA512

PHP 2x SHA512

所以,当我进行第一次2x AndroID哈希时,我得到的结果与我做1x androID时相同 – > 1x加密.
但是,当我执行PHP 2x时,我获得与第一次AndroID传递相同的结果,但PHP的第二次加密传递是不同的.

在PHP上,我尝试将hash()和openssl_digest()函数与原始字节作为输出.

PHP:

$firstpass = base64_encode(hash('sha512', $enteredPassword, true));//$firstpass = base64_encode(hash('sha512', $enteredPassword, true));//$secondpass = base64_encode(openssl_digest($firstpass, 'sha512', true));$secondpass = base64_encode(hash('sha512', $firstpass, true));

安卓:

public static String encryptPassword(String password) {    MessageDigest md = null;    try {        md = MessageDigest.getInstance("SHA-512");    } catch (NoSuchAlgorithmException e) {        e.printstacktrace();    }    if (md != null) {        md.update(password.getBytes());        byte byteData[] = md.digest();        String base64 = Base64.encodetoString(byteData, Base64.DEFAulT);        return base64;    }    return password;}

CryptoJs:

var password = cryptoJs.SHA512(req.params.password);var basepassword = password.toString(cryptoJs.enc.Base64);

为什么我的第一个哈希是正确的而我的第二个哈希是不正确的,我怎么能解决这个

解决方法:

SHA1不是为了安全而制作的,请不要将其用于此目的.
抓住BCrypt的任何实现并做好安全保护.
至于不同的哈希:很可能是与字符串相关的编码问题.

总结

以上是内存溢出为你收集整理的SHA512哈希在android,php和javascript上有所不同全部内容,希望文章能够帮你解决SHA512哈希在android,php和javascript上有所不同所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1098096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存