您好,我正在使用javascript RSA加密过程,它正在工作:
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript" src="base64.js"></script>
<script type="text/javascript" src="asn1.js"></script>
<script type="text/javascript" src="jsbn.js"></script>
<script type="text/javascript" src="prng4.js"></script>
<script type="text/javascript" src="rng.js"></script>
<script type="text/javascript" src="rsa.js"></script>
<script type="text/javascript" src="pemconvert.js"></script>
<script>
function loadpubKey(){
var pubkey = "-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAPBYvSszUjI5psKM958bHTDb+9NONv3X\nWVIGLR9/Al4j8/mqSDMhwFuu9oEyXl80+Ga2cohEQPpWyxzg3/tfGDUCAwEAAQ==\n-----END PUBLIC KEY-----";
$("#publicKey").html(pubkey);
}
function RSAEncryptData()
{
var Message = $("#Message_to_Encrypt").val();
var pubkey = pem_import($("#publicKey").val());
$("#RSAMessageEncrypted").html(pubkey.encrypt(Message));
}
</script>
</head>
<body onload="loadpubKey();">
<h1>RSA Encryption/Decryption using library From :https://github.com/tao-software/jsrsa</h1>
<form>
<strong>Public key :</strong> <textarea rows="3" cols="100" id="publicKey"></textarea><br>
<strong>Message to RSA encrypt :</strong> <textarea rows="3" cols="100" id="Message_to_Encrypt"></textarea><br>
<input type="button" value="RSA Encrypt" onclick="RSAEncryptData();">
<strong>RSA encrypted Message :</strong> <textarea rows="3" cols="100" id="RSAMessageEncrypted"></textarea><br>
</form>
</body>
</html>每次我使用相同的消息点击" encrypt“按钮进行加密时,我都会得到一个新的不同加密值。我如何才能使这种加密对所使用的相同消息产生相同的加密结果?
实际上,我想要做的是使用RSA用公钥加密一些电话号码,然后将它们存储在一个表中,之后我将加密任何我将在RSA中使用相同公钥的过程中获得的电话号码,并在表中查找是否匹配。
使用上面的脚本,我将永远不会找到匹配,即使我加密相同的电话号码超过一次,这就是为什么我希望结果是相同的加密相同的电话号码。任何想法都是受欢迎的。
提前谢谢你。
发布于 2013-01-21 19:20:48
正如格雷格在his comment中指出的那样,PKCS1填充中的随机性将导致您的加密结果每次都不同。
根据您的用例,我建议您将电话号码的散列与加密数据一起存储。然后,您可以根据散列执行快速查找。您可能希望在散列之前对您的电话号码加盐。
请记住,不能保证散列是唯一的,所以有极小的机会得到两个冲突的散列。
发布于 2013-01-21 03:34:14
这听起来像是你想用你的私钥来签署一条消息,并让其他人用你的公钥来验证签名。您所链接的库提供了RSASign和RSAVerify方法,可能在RSAKey实例的sign和verify方法下。我不是JS程序员,所以我能说的就是它看起来是这样的。
https://stackoverflow.com/questions/14426186
复制相似问题