gpt4 book ai didi

javascript - 密文未转换为纯文本且未收到警报

转载 作者:行者123 更新时间:2023-11-30 16:00:50 25 4
gpt4 key购买 nike

我无法解密密文。我必须测试我的解密是否正常工作。因此,我创建了一个简单的 html 文件,它采用密文并将其转换为纯文本。

我只是在这里对值进行硬编码,而不是将密文转换为纯文本。

当我尝试时,它根本不起作用。我不明白这是什么问题。

这是我的代码

<!DOCTYPE html>
<html>
<head>
<script src="tripledes.js"></script>
<script src="mode-ecb.js"></script>
<style type="text/css">
<script type="text/javascript">

function decryptByDES(aHJHDJSHJhjsak=, highishjdhsjhjs) {
var keyHex = CryptoJS.enc.Utf8.parse(highishjdhsjhjs);

var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(aHJHDJSHJhjsak=)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});

return decrypted.toString(CryptoJS.enc.Utf8);
alert ( decrypted);
}


</script>
</head>
<body>

<div class="maindiv">
<div>
<label for="name">Message:</label>
<input type="text" id="msg" name="msg" />
</div>
<div>
<label for="mail">Key:</label>
<input type="text" id="key" name="key" />
</div>

<div class="button">
<button onclick="decryptByDES()">View</button>
</div>
</div>
</body>
</html>

我的 mode-ecb.js 文件是

/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/**
* Electronic Codebook block mode.
*/
CryptoJS.mode.ECB = (function () {
var ECB = CryptoJS.lib.BlockCipherMode.extend();

ECB.Encryptor = ECB.extend({
processBlock: function (words, offset) {
this._cipher.encryptBlock(words, offset);
}
});

ECB.Decryptor = ECB.extend({
processBlock: function (words, offset) {
this._cipher.decryptBlock(words, offset);
}
});

return ECB;
}());

我需要在警报中显示我的解密文本。但什么也没有发生。

最佳答案

我不熟悉 CryptoJS,但是......看起来你需要在 return decrypted.toString(CryptoJS.enc.Utf8); 行之前移动警报,作为警报函数返回后不会被调用。

此外,最好制作 key 和密文变量字符串,然后从传递这些变量的按钮调用它(尽管您可能希望将 key 存储在 javascript 中,并且只传递 cipherTextString) .

<script type="text/javascript">
function decryptByDES(cipherTextString, keyString) {
var keyHex = CryptoJS.enc.Utf8.parse(keyString);

var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(cipherTextString)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});

var decryptedStringified = decrypted.toString(CryptoJS.enc.Utf8);

alert(decryptedStringified);

return decryptedStringified;
}
</script>

然后从您的按钮调用它,传递正确的变量:

<button onclick="decryptByDES('aHJHDJSHJhjsak=', 'highishjdhsjhjs');">View</button>

关于javascript - 密文未转换为纯文本且未收到警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37789525/

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