java 登录数据前端加密+后台验证RSA

19 篇文章 0 订阅
1 篇文章 0 订阅

前端加密使用RSA+MD5+自写算法
使用到了 md5.js+jsencrypt.min.js+1.js+RSAUtils.java(自写算法)
下载链接:https://gitee.com/gy297879328/learning_summary/tree/master/jiami
使用:RSAUtils.java生成一堆密钥对 ( 公钥跟私钥)公钥放到前台 私钥放后台
中间使用JSON传输

前端

$.ajax({
     type:"POST",
        url:"#(path)/manager/login/submit?returnUrl="+returnUrl,
        data:{
        //u:账号
        //p:密码
        //v 验证码
        //returnurl 跳转的url
            "l":j(u,p,v,returnUrl)//加密参数  j方法在 1.js中
        },
        dataType:"JSON",
        success:function (data) {
            console.log(data);
			 if(data.status=="success"){
                        window.location.href="/";
                    }

        }
});

1.js

## 1.js
function j(a,b,c,d) {
    var data = {};
    data["userCode"] = a;
    data["password"] = b;
    data["verifyCode"] = c;
    data["returnUrl"] = d;
    ## s方法我放到了 md5.js中,自写算法也在里面嵌套这
    data["sign"] = s(a+b+c+d);
    var encrypt = new JSEncrypt();
    ## 替换私钥
 encrypt.setPublicKey('MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgZsjUfBvYInbxhYFmp0wyGluPxJySfmXZ6fkOZw0WP6jiNnf8Kj6hdChaj5u+FihTZYSCL39+i+ME2Y2FHTVXVwxz4vBfTS+ePtQ1MY+zfmzSVhIAJ7UFTRj2hSwVG9Ic0+5W/VtYl4Q+EJhawdq9bLnXzjz+UIMRDd3w85bq5/k83oXgUz+BEL5DixyjR3eXXZ7gBqeGUOBZ7qQ3NaeWKDlKKMm6yl3F2uIoUiJ9jMtupvlZMoiWGOSTd/RqZSBjisp088MrzLS0sn2DpMguXTLEJQNyqDa6r233+6nHKGWlO+nLAEPiJ0ib5fEIKiOC6yT0uvgQFXLjlXzuc3VXQIDAQAB');
    return encrypt.encrypt(JSON.stringify(data));
}

后台

	//前台提交的加密字符串
	String encrypt = getPara("l");
	//获取私钥字符串
		String privateKey = PropKit.get("PrivateKey");
		String encryptStr="";
		try {
			//解密  RSAUtils在工具包里面有
			encryptStr = new String(RSAUtils.privateDecrypt(encrypt, privateKey));

		} catch (Exception e) {
			HashMap<String, Object> returnMap = new HashMap<>();
			returnMap.put("status", "false");
			returnMap.put("msg", "encrypt error");
			returnMap.put("returnUrl", "returnUrl");
			renderJson(returnMap);
			return;
		}
		HashMap<String, String> hashMap=JSON.parseObject(encryptStr, HashMap.class);
		String userCode = hashMap.get("userCode");
		String password = hashMap.get("password");
		String verifyCode = hashMap.get("verifyCode");
		String returnUrl= hashMap.get("returnUrl");
		//验证sign
		//EncryptUtil类 自写算法1.js的java版本 
		String sign= hashMap.get("sign");
		String s = Md5Kit.md5(EncryptUtil.pwd(userCode + password + verifyCode + returnUrl) + "sxjlrj");
		if(!sign.equals(s.toLowerCase())){
			//加密错误
			HashMap<String, Object> returnMap = new HashMap<>();
			returnMap.put("status", "false");
			returnMap.put("msg", "encrypt error");
			returnMap.put("returnUrl", "returnUrl");
			renderJson(returnMap);
			return;
		}

混淆

因为里面的js在前台是能看的 所以需要将自写的1.js代码 js混淆一下,建议采用以下 随便哪一种

方法1:https://www.jsjiami.com/混淆的地址

方法2:https://www.javascriptobfuscator.com/JavaScript-Obfuscator.aspx

将1.js代码混淆后 再替换放到js中就好了

在这里插入图片描述

了解

Javascript-obfuscator
官网:https://github.com/javascript-obfuscator/javascript-obfuscator
特点:开源,支持自定义混淆选项,支持上传JS在线混淆;混淆后的代码执行速度要慢15-80%(取决于混淆选项),并且混淆后的文件明显更大;强度高。
简介:JavaScript Obfuscator是一个免费但功能强大的JavaScript混淆器,其中包含多种自定义混淆功能,可为您的源代码提供保护。

Javascript Obfuscator
官网:https://javascriptobfuscator.com/
特点:强度高,支持自定义混淆选项,支持上传JS在线混淆,支持客户端桌面版GUI;免费版支持最大200kb的JS文件,且单次最多对20个JS文件进行混淆;付费版支持单次批量混淆50个JS文件,价格$19/month起。
简介:Javascript Obfuscator将JavaScript源代码转换为经过混淆且完全不可读的形式,从而防止对其进行分析和盗窃。它是100%安全的JavaScript压缩程序和最好的JavaScript压缩器。

JShaman
官网:http://www.jshaman.com/
特点:支持自定义混淆选项,支持在线加混淆;免费版支持试用10次高级特性,强度中;付费版支持50次代码混淆,价格¥16.9/年起。
简介:使用字符串阵列化、平展控制流、多态变异、僵尸函数等手段,使代码变的不可读不可分析,达到最终保护的目的,且不影响代码原有功能,是理想、实用的JS保护方案。JShaman采用的主要是代码混淆技术。

JSjiami
官网:https://www.jsjiami.com/
特点:支持在线加混淆;加密、混淆、压缩功能多合一;主要功能免费,混淆强度低,加密强度高;付费版支持单次批量混淆5个JS文件,价格¥88元/月起。
简介:这是对一个JS脚本进行混淆的在线工具,压缩体积较小,解密难度不难。如果运行不了,先使用eval压缩 后再使用,先加密再混淆效果最佳。站点的【JS最牛加密】功能兼容性适中,解密难度极大。

其他JS混淆工具
1.JSFuck:https://utf-8.jp/public/jsfuck.html
2.aaencode:https://utf-8.jp/public/aaencode.html
3.jjencode:https://utf-8.jp/public/jjencode.html
4.JScrambler(收费):https://jscrambler.com/
5.http://beautifytools.com/javascript-obfuscator.php
6.http://www.freejsobfuscator.com/
7.https://jsconfusion.supfree.net/
8.https://www.cleancss.com/javascript-obfuscate/index.php
9.https://www.jb51.net/tools/JShunxiao.htm
10.其他:搜索引擎关键词“JS混淆”/“JS Obfuscate”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值