1.HTML
<div class="pc_container"> <form method="post" id="ctl00" autocomplete="on"> <div class="login"> <dl> <dd class="pin text"> <input name="name" type="text" id="txtName" placeholder="账号"/> </dd> <dd class="pin text"> <input name="pass" type="password" id="txtPwd" autocomplete="off" placeholder="密码"/> </dd> <dd class="pin text"> <input name="pass_new" type="password" id="newPwd" autocomplete="off" placeholder="确认密码"/> </dd> <dd class="pin text"> <input name="name" type="number" id="txtPhone" placeholder="联系人电话" /> </dd> </dl> <div class="login-bottom"> <div class="login-submit"> <input type="submit" name="btnLogin" value="确 认" id="btnLogin" class="loginBtn"/> </div> </div> <div class=""></div> </div> </form> </div>
2.js
$(function () { $("#newPwd").blur(function(){ if($("#txtPwd").val()!=$("#newPwd").val()){ layer.msg("两次输入的密码不一致", {icon: 2}) $("#newPwd").val("") return false; } }) $("#txtPhone").blur(function(){ var phone = $('#txtPhone').val(); if(!(/^1[3456789]\d{9}$/.test(phone))){ layer.msg("手机号码有误,请重填!", {icon: 2}) $('#txtPhone').val(""); return false; } }) $('#btnLogin').click(function () { var pass = $("#newPwd").val(); var corpId='<?php echo $_GET['corpId'];?>'; var key = CryptoJS.enc.Hex.parse("e10adc3949ba59abbe56e057f20f883e"); //md5('123456') var iv = CryptoJS.enc.Hex.parse("1234567890abcdef1234567890abcdef"); var opinion = {iv: iv, padding: CryptoJS.pad.ZeroPadding}; var encrypted = CryptoJS.AES.encrypt(pass, key, opinion); encrypted = encrypted.toString(); var obj = { name: $("#txtName").val(), <?php echo '"'.md5('pass').'"' ?>: encrypted, phone: $("#txtPhone").val(), corpId:corpId }; if (obj.name == "") { layer.msg("请输入账号", {icon: 2}) return false; } if (obj.pass == "") { layer.msg("请输入密码", {icon: 2}) return false; } if (obj.phone == "") { layer.msg("请输入手机号码", {icon: 2}) return false; } $.post("/?a=wap.wwx.sign_up", {data: obj}, function (result) { rs = jQuery.parseJSON(result); if (rs.type == 'error') { alert(rs.msg); return false; } if(rs.type == 'success'){ let url = "https:www.367edu.com"; // 这里是拼接 layer.alert(`<p>注册成功,欢迎您使用我们的模板,您可以前往网站 <a href="${url}">www.367edu.com/login.php</a>选择合意的模板,并对模板进行优化。</p><p>学校id:${rs.uid}</p><p>账号:${rs.username}</p><p>密码:${rs.pass}</p><p style="color: red">有疑惑请与客服联系</p>`,{ yes:function (res) { window.location.href='/?a=wap.index&uid='+rs.uid+'&corpid='+corpId; } }) } }); return false; }) })
3.php 后台
//解密 $pass = $_POST[md5('pass')]; $key = pack('H*', 'e10adc3949ba59abbe56e057f20f883e'); //md5('123456') $iv = pack('H*', '1234567890abcdef1234567890abcdef'); $dncrypted = base64_decode($pass); $dncrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $dncrypted, MCRYPT_MODE_CBC, $iv); write_log($logtext,"88_2".json_encode($dncrypted,JSON_UNESCAPED_UNICODE)); $dncrypted = trim($dncrypted); $_POST["pass"]= $dncrypted;
ps:使用 mcrypt 扩展中的 mcrypt_encrypt() 和 mcrypt_decrypt() 对数据进行加密和解密
// 加密
$passMethod
= MCRYPT_BLOWFISH;
// 加密算法
$key
=
'123456789'
;
// 加密密钥
$pass
=
'12345'
;
// 要加密或解密的数据
$mode
= MCRYPT_MODE_CBC;
// 加密或解密的模式
// 初始向量
$iv
= mcrypt_create_iv(mcrypt_get_iv_size($passMethod
,
$mode
), MCRYPT_DEV_URANDOM);
// 加密数据
$encrypted_data
= mcrypt_encrypt($passMethod
, $pass,
$data
,
$mode
,
$iv
);
$passEncryption
=
base64_encode
(
$encrypted_data
);