前端对用户名密码加密处理,后端解密

一. 正常表单提交如图,可以看见输入的用户名密码等

二. 使用crypto-js.min.js进行前端加密处理

js资源地址链接:https://pan.baidu.com/s/1kfQZ1SzP6DUz50D--g_ziQ

提取码:1234

前端代码

javascript 复制代码
<script type="text/javascript" src="/js/crypto-js.min.js"></script>
<script type="text/javascript">
function encrypt(str, key, iv) {
	//密钥16位 
	var key = CryptoJS.enc.Utf8.parse(key); 
	//加密向量16位 
	var iv = CryptoJS.enc.Utf8.parse(iv); 
	var encrypted = CryptoJS.AES.encrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); 
	return encrypted; 
	
}


</script>

<script>
    layui.use('form', function () {
        var form = layui.form;
        form.render();
        form.on('submit(LAY-user-login-submit)', function (data) {
        //表单可使用var data = $("form").serialize();
            var field = data.field;
            var jsonstr=JSON.stringify(field);
            var enjsonstr=encrypt(jsonstr,'abcdefgh12345678','abcdefgh12345678');
            var enstr="'"+enjsonstr+"'";
            $.post("{:url('admin/site/login')}",{key:enstr}, function (ret) {
            	//成功
                if (ret.code == 0) {
                    layer.msg(ret.msg, { time: 1000 }, function () {
                        window.location.href = ret.url;
                    })
                } else {
                    layer.msg(ret.msg, { time: 1000 });
                    setTimeout(function (){
 
						 window.location.reload();
						}, 2000);
                    
                    
                }
            });
        });
    });
</script>

后端使用php获取数据

php 复制代码
$input = input("request.", '', 'trim'); 
$obj=get_object_vars(decrypt($input['key'],'abcdefgh12345678','abcdefgh12345678'));
unset($input['key']);
$input=array_merge($input,$obj);

后端解密方法如下

php 复制代码
function decrypt($data, $key, $iv) {
	$decrypted = openssl_decrypt(base64_decode($data), 'AES-128-CBC', $key, true, $iv); 
	$json_str = rtrim($decrypted, "\0");
	return json_decode($json_str); 
	
}
相关推荐
Mintopia9 小时前
🤖 AI 决策 + 意图OS:未来软件形态的灵魂共舞
前端·人工智能·react native
攀登的牵牛花9 小时前
前端向架构突围系列 - 框架设计(四):依赖倒置原则(DIP)
前端·架构
程序员爱钓鱼9 小时前
Node.js 编程实战:测试与调试 —— 日志与监控方案
前端·后端·node.js
Mapmost9 小时前
数字孪生项目效率翻倍!AI技术实测与场景验证实录
前端
小酒星小杜10 小时前
在AI时代,技术人应该每天都要花两小时来构建一个自身的构建系统-Input篇
前端·程序员·架构
Cache技术分享10 小时前
290. Java Stream API - 从文本文件的行创建 Stream
前端·后端
陈_杨10 小时前
前端成功转鸿蒙开发者真实案例,教大家如何开发鸿蒙APP--ArkTS 卡片开发完全指南
前端·harmonyos
小杨同学4910 小时前
C 语言实战:枚举类型实现数字转星期(输入 1~7 对应星期几)
前端·后端
陈_杨10 小时前
前端成功转鸿蒙开发者真实案例,教大家如何开发鸿蒙APP--ArkTS 卡片刷新机制
前端·harmonyos
go_caipu10 小时前
Vben Admin管理系统集成qiankun微服务(二)
前端·javascript