RSA加密算法 简单用法:javascript 加密 与 php 解密

简单例子:密码加密传送

RSA加密算法是一种非对称加密算法。在前端可以用公钥加密,后端可以用私钥解密。

在线生成公钥和秘钥

javascript

<script src="https://passport.cnblogs.com/scripts/jsencrypt.min.js"></script>

<script type="text/javascript">
	function login(){
		var password = document.form.password.value;// 密码明文
		// 公钥	
		var pubkey='-----BEGIN PUBLIC KEY-----';
		pubkey+='MIGfM112CSqGSIb3DQE12QUAA4GNADCBiQKBgQCzDB832vsFQPK4Gl24nKCHDRTwZ';
		pubkey+='LQvu4p8PUxmkk8jDFQIDAQAB';
		pubkey+='-----END PUBLIC KEY-----';

		var encrypt = new JSEncrypt();
		encrypt.setPublicKey(pubkey);
		// 对密码加密
		var encrypted = encrypt.encrypt(JSON.stringify({"encrypt": "yes", "password": password}));
		// 设置加密的密码
		document.form.password.value = encrypted;

		// 提交 省略
	}
</script>

PHP

需要开启openssl支持。

// 前端传过来的加密后的密码
$pw = strip_tags(trim($_POST['password']));
// 私钥
$private_key = "-----BEGIN PRIVATE KEY-----
KKIC12345DANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALMMHxzm+wVA8rga
VacoIcNFPBlKReBH0aSp12345pQYBhQr4br3FaM7KCYUxFOh5yNgjYQ51gxlDOWH
67cRTm147777/DYPXGncDDcwXaQ1rq1n62SK7djH4ZN0ViSIZWrpUeol9TxlFfOb
nNNLXxTBSbAtC+7inw9TGaSTyMMVAgMBAAECgYEAkkpmJ999888Y5XmG4FP2+iBY
kWVRIIYtsX66661yItxaIyMThXqasEsGa87t9lNDknEyT4Yd8PSji+r5WhOG2qbe
StPVmGJ+gDYEbGNe5i9W4Dl9898ict/AwnFSu55SErNNOy3J3lUg9stJq45jLU3u
g92a3T0000TFzw==
-----END PRIVATE KEY-----";

// 用私钥解密,解密结果会赋值给$decrypted
openssl_private_decrypt(base64_decode($pw),$decrypted,$private_key); 

// 解密结果 Array ( [encrypt] => yes [password] => mima )
$passwordArray = json_decode($decrypted,true);

// 解密后的密码
$pw = $passwordArray['password'];

// 省略
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值