
在浏览器客户端中使用RSA进行数据加密的方法
具体方法如下:
rsa.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
<style>
body {
margin: 200%;
font-size: 24px;
font-weight: bold;
}
.encrypted-msg {
word-break: break-all;
}
</style>
</head>
<body>
<!-- 公钥rsa_1024_pub.pem中的key字串 -->
<textarea name="" id="J_PublicKey" cols="30" rows="10" hidden="">
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8asrfSaoOb4je+DSmKdriQJKW
VJ2oDZrs3wi5W67m3LwTB9QVR+cE3XWU21Nx+YBxS0yun8wDcjgQvYt625ZCcgin
2ro/eOkNyUOTBIbuj9CvMnhUYiR61lC1f1IGbrSYYimqBVSjpifVufxtx/I3exRe
ZosTByYp4Xwpb1+WAQIDAQAB
-----END PUBLIC KEY-----
</textarea>
加密前数据:<input id="J_Msg" type="text">
<button id="J_EncryptBtn" type="button">客户端加密</button>
加密后数据:
[removed][removed]
[removed][removed]
[removed][removed]
</body>
</html>
rsa.js
$('#J_EncryptBtn').click(function () {
// 使用公匙对明文进行加密
var encrypt = new JSEncrypt();
var publicKey = $.trim($('#J_PublicKey').val());
var msg = $.trim($('#J_Msg').val());
if (!msg) {
return;
}
encrypt.setPublicKey(publicKey);
var encryptedMsg = encrypt.encrypt(msg);
$('#J_EncryptedMsg').html(encryptedMsg);
});