RSA加密

1、引用js(jsencrypt.min.js);
2、在发请求的js里增加    
    var password1 = $('#password').val();
    var name1=$('#loginname').val();
    var en_psw = "",en_name = "";
    var publicKey = "";
    var privateKey = "";
    var url = basePath + "/login/rsaPublicKey.html";
    $.ajax({
        type:"post",
        url:url,
        data:{},
        dataType:"json",
        async:false,
        success:function(data){
            var falg = data.resultCode;
            if('success' == falg){
                publicKey = data.data.encrypt_data;
                privateKey = data.data.encrypt_data_sy;
            }
        }
    });
    var encrypt = new JSEncrypt();
    encrypt.setPublicKey(publicKey);
    encrypt.setPrivateKey(privateKey);
    en_psw = encrypt.encrypt(password1);
    en_name = encrypt.encrypt(name1);
3、增加接口并增加工具类(RSAUtils.java)
    /**
     * 获取公钥和随机值
     *
     */
    @ResponseBody
    @RequestMapping("/rsaPublicKey")
    public Map<String, Object> rsaPublicKey(String data) {

        Map<String, Object> resultMap = new HashMap<String, Object>();
        String retData = "";
        String sretData = "";
        try {
            Map<String, Object> keyMap = null;//RSAUtils2.genKeyPair();
            retData = RSAUtils.getPublicKey(keyMap);
            sretData = RSAUtils.getPrivateKey(keyMap);
            //System.out.println("公钥="+retData);
            //System.out.println("私钥="+sretData);
        } catch (Exception e) {
            
        }
        resultMap.put("encrypt_data", retData);
        resultMap.put("encrypt_data_sy", sretData);
        return resultMap;
    }

    /**
     * 获取公钥和随机值
     * @throws IOException
     *
     */
    @RequestMapping("/rsaPublicKey.html")
    public void rsaPublicKey(HttpServletResponse reseponse) throws IOException {

        Map<String, Object> resultMap = new HashMap<String, Object>();
        String retData = "";
        String sretData = "";
        try {
            Map<String, Object> keyMap = null;//RSAUtils2.genKeyPair();
            retData = RSAUtils.getPublicKey(keyMap);
            sretData = RSAUtils.getPrivateKey(keyMap);
        } catch (Exception e) {
            log.error("获取公钥失败:", e);
        }
        resultMap.put("encrypt_data", retData);
        resultMap.put("encrypt_data_sy", sretData);
        
           Map<String, Object> mapData = new HashMap<String, Object>();
        mapData.put("resultCode", "success");
        mapData.put("data", resultMap);
        String jsonStr = GsonUtils.getJson(mapData);
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().print(jsonStr);
    }
4、解密
        Map<String, Object> keyMap = null;
        try {
            String sy = RSAUtils.getPrivateKey(keyMap);
            String password = RSAUtils.decryptDataOnJava(mail.getPassword(),sy);
            mail.setPassword(password);
            System.out.println(password);
        } catch (Exception e) {
            System.out.println(e);
            return ;
        }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值