简单前端实现密码加密方式

      发布在:后端技术      评论:0 条评论

后端PHP生成Key

session('loginskey', $this->loginskey = uniqid())

在前端加入隐藏表单

<input type="hidden" name="skey" value="{$loginskey|default=''}">

提交前通过skey值+密码进行md5加密

/*! 后台加密登录处理 */
$body.find('[data-login-form]').map(function (that) {
that = this;
require(["md5"], function (md5) {
$("form").vali(function (data) {
data['password'] = md5.hash(md5.hash(data['password']) + data['skey']);
if (data['skey']) delete data['skey'];
$.form.load(location.href, data, "post", function (ret) {
if (parseInt(ret.code) !== 1) {
$(that).find('.verify.layui-hide').removeClass('layui-hide');
$(that).find('[data-refresh-captcha]').trigger('click');
}
}, null, null, 'false');
});
});
});

后端做判断

$data=$_POST;
$map = ['is_deleted' => '0', 'username' => $data['username']];
$user = Db::name('SystemUser')->where($map)->order('id desc')->find();
if (empty($user)) $this->error('登录账号或密码错误,请重新输入!');

if (md5($user['password'] . session('loginskey')) !== $data['password']) {
$this->error('登录账号或密码错误,请重新输入!');
}

提交效果图

未标题-1

相关文章
热门推荐