我在登录页面上使用了类似的内容;它使用给定的公共密钥信息(N,e)加密登录凭据,该信息可以在PHP中解密。
它使用以下文件
JSBN:
jsbn.js
-使用大整数rsa.js
-仅用于RSA加密(使用jsbn.js)rng.js
-基本的熵收集器prng4.js
-ARC4 RNG后端
加密数据:
$pk = '-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----';$kh = openssl_pkey_get_private($pk);$details = openssl_pkey_get_details($kh);function to_hex($data){ return strtoupper(bin2hex($data));}?><script>var rsa = new RSAKey();rsa.setPublic('<?php echo to_hex($details['rsa']['n']) ?>', '<?php echo to_hex($details['rsa']['e']) ?>');// encrypt using RSAvar data = rsa.encrypt('hello world');</script>这是解码发送的数据的方式:
$kh = openssl_pkey_get_private($pk);$details = openssl_pkey_get_details($kh);// convert data from hexadecimal notation$data = pack('H*', $data);if (openssl_private_decrypt($data, $r, $kh)) { echo $r;}


