PHP密码问题陈婷代码_登录中利用JS前端加密PHP后端解密保证数据非明文传输的安全方法...

本文介绍了一种确保数据在传输过程中非明文传递的方法,通过前端JS利用CryptoJS库进行AES加密,而后端PHP使用openssl_decrypt进行解密,以解决明文账号和密码传输的安全问题。在登录界面,账号和密码首先被JS加密,然后提交到服务器进行解密验证。
摘要由CSDN通过智能技术生成

为什么要研究这个呢,因为我所在单位的信息管理部门在监控系统上发现有大量的明文账号(身份证号)和密码在传输,被告知这很不安全,索性就直接解决这个问题,利用JS前端加密PHP后端再加密来解决这个问题,保证传输过程中数据的非明文传递。

一、登录界面

//以上引用文件会在后面给出文件压缩包(顺便在这里鄙视一下有些论坛,无论什么东西都要下载积分花钱,我也是付费购买后给大家分享出来)

function checkform_login(){

if ($("#username").val()==""){

$("#username").focus();

alert("请输入您的账号!")

return false

}else if ($("#password").val()==""){

$("#password").focus();

alert("请输入您的密码!")

return false

}else{

$("#u_dlcode").val(js_encrypt($("#username").val()))

$("#p_dlcode").val(js_encrypt($("#password").val()))

//$("#username").val($("#u_dlcode").val()+123)

//return false

$("#form_login_true").submit();

return true

}

}

//前端js,使用crypto-js对数据进行AES加密

function js_encrypt(text){

var key = CryptoJS.enc.Latin1.parse('1E390CMD585LLS4S'); //为了避免补位,直接用16位的秘钥

var iv = CryptoJS.enc.Latin1.parse('1104432290129056'); //16位初始向量(请记住这两个都要保证是16位)

var encrypted = CryptoJS.AES.encrypt(text, key, {

iv: iv,

mode:CryptoJS.mode.CBC,

padding:CryptoJS.pad.ZeroPadding

});

return encrypted;

}

二、PHP验证登录界面//openssl_encrypt解密,前端通过JS加密

function js_decrypt_openssl($encrypt){

$key = "1E390CMD585LLS4S"; //与JS端的KEY一致

$iv = "1104432290129056"; //这个也是要与JS中的IV一致

//$encrypt = base64_ decode($encrypt); //注意这里的base64_和decode之间不应该有空格,我这么写是因为触发了西数的安全机制,不允许在内容中有这个函数

$decrypted = openssl_decrypt($encrypt, 'AES-128-CBC', $key, 2 , $iv);

$decrypted = rtrim($decrypted, "

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值