在写项目的过程中,处于安全问题的考虑,需要对充值输入的数据进行加密传输给后台,和后台商定之后使用的RSA来进行加密
直接上代码
这里面是angular1.4.6的写法,其他的基本是差不多的
对了,一定要记得引用包,这里引用的是这个两个
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/jquery/jsencrypt.js"></script>
完整版
完整版代码
// 加密的RSA
let str = ''; // 保存的
const url = serUrl + "api/RSA/getPublicKey";
const addRecharge = serUrl + "api/RSA/decrypt";
var getRSAData = function() {
$.ajax({
type: "GET",
url: url,
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
}
}).success(function (res) {
var encrypt = new JSEncrypt();
encrypt.setPublicKey(res);
$scope.str = encrypt.encrypt("{uid:" + $scope.user.uid + ",amount:" + $scope.rechargeAmount + ",trade_no:" + JSON.stringify($scope.trade_noReason) + ",transaction_id: "+ null +"}")
addUserBalance() // 调用充值接口
}).error(function () {
console.log('访问服务器失败!')
});
}
// 充值的接口
var addUserBalance = function() {
$.ajax({
url: addRecharge,
type: "POST",
data: {
"str": $scope.str
},
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
},
}).success( function (data) {
console.log(data);
if (data.msg == "OK") {
alert("充值成功")
$(".AdminPlusCzaspAdmin_popUp").hide();
$(".AdminPlusCzaspAdmin_zhezhao").hide();
getAdminPlusCzaspAdmin();
$scope.trade_noReason = '';
$scope.rechargeAmount= '';
} else {
alert("更改失败");
$(".AdminPlusCzaspAdmin_popUp").hide();
$(".AdminPlusCzaspAdmin_zhezhao").hide();
getAdminPlusCzaspAdmin();
$scope.trade_noReason = '';
$scope.rechargeAmount= '';
}
}).error(function () {
console.log('访问充值服务器失败!')
$(".AdminPlusCzaspAdmin_popUp").hide();
$(".AdminPlusCzaspAdmin_zhezhao").hide();
getAdminPlusCzaspAdmin();
$scope.trade_noReason = '';
$scope.rechargeAmount= '';
});
};
最后再来一个简版的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo</title>
</head>
<body>
<button id="btn">加密</button>
</body>
<script src="jquery-3.3.1.min.js"></script>
<script src="jsencrypt.js"></script>
<script>
$(document).ready(function () {
$("#btn").click(function () {
$.ajax({
url: "/getPublicKey",
success: function (res) {
console.log(res);
var encrypt = new JSEncrypt();
encrypt.setPublicKey(res);
console.log(encrypt.encrypt("{uid:10,amount:100,trade_no:充值}"));
$.ajax({
url: "/decrypt",
data: {
"str": encrypt.encrypt("{uid:10,amount:100,trade_no:充值}")
},
success: function (res1) {
console.log(res1);
}
});
}
});
});
});
</script>
</html>