关于加密RSA(angular1.4.6)

在写项目的过程中,处于安全问题的考虑,需要对充值输入的数据进行加密传输给后台,和后台商定之后使用的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>

猜你喜欢

转载自blog.csdn.net/q_3352321698/article/details/82692568