RSA 前端JS加密 PHP解密

17 篇文章 0 订阅

在线生成加密对网站:

http://web.chacuo.net/netrsakeypair

前端代码:rsa.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">

<script src="https://passport.cnblogs.com/scripts/jsencrypt.min.js"></script>
<script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js"></script>

</head>



前端页面上对应的input输入框为:
密码:<input name="password" id="password" value="123456"><br/>
加密后的密文(base64):<br/>
<textarea id="input" name="input" type="text" rows=6 cols=70></textarea><br/>
<input id="testme" type="button" value="加密"/><br/>

<script>
var pubkey='-----BEGIN PUBLIC KEY-----';
pubkey+='MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCytYlGIkLH8Vp6FY72PSfjnlkw';
pubkey+='IkR6r8Iw6DJvSwVil8ww88hNx3sf86CeE1ttoyIJO1jV52Oijr6P5cvtG3oG9J0U';
pubkey+='Lp+wrJmtiEBJkAKuK/45+D65boBKrI8ye/AGiQe0tm611JVGDMFyBJUKlAVQjsrk';
pubkey+='kjf93uzY562B448U4QIDAQAB';
pubkey+='-----END PUBLIC KEY-----';

$("#testme").click(function(){
	var encrypt = new JSEncrypt();
	encrypt.setPublicKey(pubkey);
	var encrypted = encrypt.encrypt(JSON.stringify({"encrypt": "yes", "password": $("#password").val()}));
	$('#input').val(encrypted);
})

</script>



</html>

后端面代码:rsa.php

<?php

$text = "MhWNrb+a3a0gDHow7AEoe6QUgDUOSTcwchC4Iv/YTZUiW6HXVUX+jeJVE9QW6JlVFopDvVNUFBNa8kaTjM8JRa5V2H5/0E3rRRlIh7s5jjJKX6dHidtTiAPJrJh/PrvkhVN49n2Zp3VyV/zCBGsICfWZWQMQwQcL9tpVlY4PgoU=";

var_dump(getRSAEncode($text));


function getRSAEncode($text)
{
        $private_key='-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCytYlGIkLH8Vp6FY72PSfjnlkwIkR6r8Iw6DJvSwVil8ww88hN
x3sf86CeE1ttoyIJO1jV52Oijr6P5cvtG3oG9J0ULp+wrJmtiEBJkAKuK/45+D65
boBKrI8ye/AGiQe0tm611JVGDMFyBJUKlAVQjsrkkjf93uzY562B448U4QIDAQAB
AoGAJ3eLEQeY+wI06phfQcdgy1aZuNUgjX3KY7WsCcMmNc9zY247Ut4WtYg+9Rou
S2jHKAXIyTi4WtqugCYOYtd6G7epam2V0q+RrIVwGJKXJzoR4RLYmDITAOlU/9H9
0PohTg11NMP3UjiqFWE5QG7vDFQBY9CrBFHifhJLWReW9MkCQQDWEAzSAoURyAaz
XYgoWlkYYVnhX5/IHXY+ONR2RUwY9aceBJ2WD4OPoccu3bOtKqf95i2dXiEILJWE
Em3tJIXVAkEA1bhjWHh7TnktXpt+DDEGSKES1vImHdyQc7dIgWW62ric8GV05ar2
SW949+UaY7prGdpKg2yQHv+6DKfMG7Nc3QJAeyHsXfk5FktbH13T7nJaAZ4uF2fr
/y6DT7Nc81NVPJ5BrRC2nRT7dml2q8y3iAqba382CemVUqBiuP/o35o8qQJBAJrP
+17Nv3xjuOKsPg00wfmAfDYpqES/TgAUhzf8afMgAcb9p0Tqp4cgcX8YfRo6onRS
tOEolelukuWx8t8p+R0CQBrMG0l4bvHH+nBXKGUkD8oruAKADUs33+vdt39BdhyI
Fnb+8RvK/z3S+JnSFdxCKB8tcKbyuJKC4L5Vz5r0Pm4=
-----END RSA PRIVATE KEY-----';

			
	//私钥解密 
	openssl_private_decrypt(base64_decode($text),$decrypted,$private_key); 
	$encrypt_exist=false;
	if(!empty($decrypted)) {
		$arr = json_decode($decrypted, true);
		if(array_key_exists("encrypt",$arr)) {
			if($arr['encrypt']=="yes") $encrypt_exist=true;
		}
	}
	if(!$encrypt_exist) die("抱歉!数据提交错误!");
	//继续后续处理
	return $arr['password'];
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值