gpt4 book ai didi

javascript - 为什么 javascript 返回另一件事而 php 返回另一件事?

转载 作者:行者123 更新时间:2023-11-30 10:08:40 25 4
gpt4 key购买 nike

我想用 php 和 javascript 编码一些字符串...我的 Php 代码:

<?php
$number = '8793';
$hash = md5($number);
$hash = sha1($hash);
$hash = md5($hash);
$hash = md5($hash);
$hash = sha1($hash);
$hash = sha1($hash);
$hash = md5($hash);
$hash = sha1($hash);
echo $hash;
?>

它返回给我:4dcfc4eb41e2a44dce5d7180f08a5217f1c6811c

这是我的 javascript 代码:

<div id="messages"></div>
<script type="text/javascript" src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js"></script>
<script type="text/javascript" src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/md5.js"></script>
<script type="text/javascript">
function md5(string)
{
return CryptoJS.MD5(string);
}
function sha1(string)
{
return CryptoJS.SHA1(string);
}
function encode(string)
{
var number = string;
var hash = md5(number);
var hash = sha1(hash);
var hash = md5(hash);
var hash = md5(hash);
var hash = sha1(hash);
var hash = sha1(hash);
var hash = md5(hash);
var hash = sha1(hash);
return hash;
}
var text = '8793';
document.getElementById("messages").innerHTML = encode('8793');
</script>

但它返回给我 8cdd439c88aa2276bdc1ac7cb58b7c403fb6e929我该如何解决?

最佳答案

在您的 javascript 代码中,当您执行 MD5 和 SHA1 时,它会返回一个具有实际代码的对象,而不是具有十六进制表示形式的字符串。这意味着以下操作正在对数值而不是字符串进行哈希。

要修复它,请在每个步骤中转换为字符串:

<div id="messages"></div>
<script type="text/javascript" src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js"></script>
<script type="text/javascript" src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/md5.js"></script>
<script type="text/javascript">
function md5(string)
{
return CryptoJS.MD5(string);
}
function sha1(string)
{
return CryptoJS.SHA1(string);
}
function encode(string)
{
var number = string;
var hash = md5(number);
var hash = sha1('' + hash); // <--- converting to string
var hash = md5('' + hash);
var hash = md5('' + hash);
var hash = sha1('' + hash);
var hash = sha1('' + hash);
var hash = md5('' + hash);
var hash = sha1('' + hash);
return hash;
}
var text = '8793';
document.getElementById("messages").innerHTML = encode('8793');
</script>

通过此修改,Javascript 将输出 4dcfc4eb41e2a44dce5d7180f08a5217f1c6811c

关于javascript - 为什么 javascript 返回另一件事而 php 返回另一件事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com