gpt4 book ai didi

javascript - 为什么 Javascript 没有加密我的表单?

转载 作者:行者123 更新时间:2023-12-03 09:01:19 25 4
gpt4 key购买 nike

Javascript RSA 库来自https://github.com/ziyan/javascript-rsa

PHP RSA 库来自http://phpseclib.sourceforge.net/

示例来自https://stackoverflow.com/a/10922491/5281854

我的代码(浏览器仍然将原始文本发送到服务器):

<?php
include('Crypt/RSA.php');
session_start();
$rsa = new Crypt_RSA();
if(isset($_POST['password'])){
echo $_POST['password'];
echo 1;
$rsa->loadKey($_SESSION['privatekey']);
echo $rsa->decrypt($_POST['password']);
exit();
}
extract($rsa->createKey(4096));

$_SESSION['privatekey']=$privatekey;
$publickey=str_replace("\n", "\\\n", $publickey);
?>
<!DOCTYPE html>
<html>
<head>
<script language="JavaScript" type="text/javascript" src="jsbn.js"></script>
<script language="JavaScript" type="text/javascript" src="rsa.js"></script>
<script language="JavaScript">

function encryptData(){

//Don't forget to escape the lines:
var pem = "<?php echo $publickey; ?>";
var key = RSA.getPublicKey(pem);
element=document.getElementById('password');
element.value=RSA.encrypt(element.value, key);
}
</script>
</head>
<body>

<form method='POST' id='txtAuth' onsubmit='encryptData()'>
<input type='text' name='username'/>
<input type='password' name='password' id='password' placeholder="password"/>
<input name='submit' type='submit' value='Submit'>
</form>
</body>
</html>

所有库文件均已正确加载。谁能告诉我为什么加密不起作用?

最佳答案

因此,我在自己的本地计算机上尝试了您的代码,但遇到了一些问题。

  1. 你正在做str_replace("\n", "\\\n", $publickey) - 我必须做str_replace("\r\n", "\\\n", $publickey) 否则我会在 javascript 控制台中收到 Uncaught SyntaxError: Unexpected token ILLEGAL 错误。

  2. 即使完成#1 后,我仍然收到 Uncaught TypeError: this.toRadix is not a function 错误。我正在使用https://raw.githubusercontent.com/ziyan/javascript-rsa/master/src/jsbn.jshttps://raw.githubusercontent.com/ziyan/javascript-rsa/master/src/rsa.js而且我根本没有真正修改过你的代码。亲自尝试一下:http://www.frostjedi.com/terra/so/

也就是说,看看你的 rsa.js...我仍然坚持我原来的说法,即 $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); 应该可以工作,假设 javascript 错误可以被克服。不幸的是,由于我无法超越它们(而且我对修复一段三年内没有更新的代码不感兴趣),所以我无法验证。您自己实际上有一个不会在 JS 控制台中产生错误的工作示例吗?

关于javascript - 为什么 Javascript 没有加密我的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32296830/

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