http登陆时的密码加密
系统设计登陆页面的时候,需要谨慎。因为登陆数据是在网络上进行传输,很可能中途被拦截。
最好的登陆是使用https,这样网络传输是安全的。google,baidu,alibaba都使用https的方式。
但一般的企业网站,不一定会去部署https。因此我们要考虑在传输过程中加密,避免登录数据太容易被他人破解。
用户在输入用户名,密码,点击登录,在提交数据前,我们应该考虑使用js对password进行加密(例如base64,hash等)。这样在网络上传输的是加密后的密码,给拦截者的破解工作带来一定难度。

示例代码:
<script type="text/javascript">
$(document).ready(function() {
$('#formlogin').submit(function(){
var password=$('#passwordId').val();
var encryptedPW = Base64.encode(password);
$('#passwordId').val(encryptedPW);
return true;
});
});
</script>
但以上这种只是简单的加密。
更完美点的方案是使用AES(Advanced Encryption Standard)方式进行加密。每次登录前,从服务器请求一个随机的key,把这个key当做AES的密钥,产生加密后的字符串。这样能够大大提高登陆的安全性。
不过也带来一个问题,需要js和java支持相同加解密功能的函数。这说起来很简单,大家自己真正开发的时候才知道想要js和java兼容相同的加解密函数并不容易。js的跨浏览器支持、编码、java反解密、session问题,没有几天的调试是做不好的。
有兴趣者可以研究以下js类库。
https://github.com/ricmoo/aes-js
http登陆时的密码加密的更多相关文章
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var pwd ...
- java项目中登陆时记住密码
1.在登陆的时候记住密码,不知自动登陆: 2.登陆页面,填写用户名,密码,点击记住密码,下次进入登陆页面的时候,填写同样的用户名,密码自动填充(在不一次会话的情况下也就是说在不关闭浏览器的情况下): ...
- Ubuntu登陆时忘记密码怎么办
有时候由于各种原因,用户会忘记自己登陆Ubuntu的登陆密码,这个时候我们能怎么办呢? 第一步:先重启电脑,开机时长按shift键,进入grub菜单: 第二步:按“e”键编辑启动项,显示如下图,将下图 ...
- django中写入数据时给密码加密
方法一.在自定义的form表单中重写save方法: 方法二.使用信号量来实现 1. 在应用的模块下新建signal.py文件 2.编写回调函数,内容如下: 3. 在应用的app.py文件中的ready ...
- 13flask密码加密
一,了解密码加密方式 密码具有私有性较强的特性,预测密码加密对个人隐私的保护有这非常大的作用.在用flask搭建网站时候若服务器有被攻破的风险,要是用户表中密码字段也被拿走,后果将不堪设想. 在密码保 ...
- SYSDBA身份登陆时可以修改其他用户的密码
在以SYSDBA身份登陆时可以修改其他用户的密码,比如:SQL> alter user user01 identified by user10;用户已更改.这个是把USER01用户密码修改为US ...
- Django项目:CRM(客户关系管理系统)--45--37PerfectCRM实现King_admin添加用户时密码加密
#views # ————————02PerfectCRM创建ADMIN页面———————— from django.shortcuts import render # ————————04Perfe ...
- 【Linux】使用xshell登陆时密码框为灰色,无法输入密码
使用xshell登陆时,出现以上情况,那么这到底值咋回事呢?经过查询以后发现是服务器端设置问题,解决办法如下: vi /etc/ssh/sshd_config 接着保存退出,然后重启sshd服务 se ...
- 基于RSA的前后端登陆密码加密JAVA实现(转)
RSA加密算法简介 SA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用.对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法愈 ...
随机推荐
- 精读《12 个评估 JS 库你需要关心的事》
1 引言 作者给出了从 12 个角度全面分析 JS 库的可用性,分别是: 特性. 稳定性. 性能. 包生态. 社区. 学习曲线. 文档. 工具. 发展历史. 团队. 兼容性. 趋势. 下面总结一下作者 ...
- mysql替代like模糊查询的方法
LIKE语句 SELECT `column` FROM `table` where `condition` like `%keyword%' 事实上,可以使用 locate(position) 和 i ...
- 【机器学习算法基础+实战系列】SVM
概述 支持向量机是一种二分类模型,间隔最大使它有别于感知机.支持向量机学习方法由简至繁的模型:线性可分支持向量机(linear support vector machine in linearly s ...
- stark组件(4):列表定义列,展示数据库数据
效果图: 一.Stark组件 stark/service/core_func.py from django.urls import re_path from django.shortcuts impo ...
- centos安装xfce及输入法
一.执行CentOS7 最小安装 去官网 https://www.centos.org/ 下载CentOS-7-x86_64-Minimal-1804.iso,然后使用rufus刻录U盘,安装之.安装 ...
- perl语言入门总结-第4章-子程序
子程序定义和返回值 sub sum{ print "调用了子程序\n"; $a + $b; #后一行为返回值 } ; ; $s =∑ #34 调用子程序 子程序中的参数,参数固定( ...
- vue 组件轮播联动
组件轮播联动我使用的是 el-carousel 组件,具体代码如下: <el-carousel trigger="click" :interval="3000&qu ...
- https refused 解决方法
今天调试Android程序,所有的手机都ok,后来,我一个手机一直说,refused. 其实这就说明代码是没有问题的,你应该可以根据这个把代码的原因排除.然后剩下的,网络请求还能有什么,网路白. 果然 ...
- QQ空间相册展示特效
<!doctype html> <html lang="en"> <head> <title>QQ空间相册展示特效<title ...
- python学习笔记十二:类的定义
demo #!/usr/bin/python class Person: name = 'jim' age = 25 def say(self): print 'My name is ' + self ...