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算法愈 ...
随机推荐
- 【CodeBase】PHP打印所有用户自定义常量
print_r(get_defined_constants(true)['user']);
- css设置内容超出后显示省略号
1.使用overflow: hidden把超出的内容进行隐藏: 2.然后使用white-space: nowrap设置内容不换行: 3.最后使用text-overflow: ellipsis设置超出内 ...
- HyperLedger Fabric 1.4 区块链技术发展(1.3)
区块链技术发展经历区块链1.0(数字货币).区块链2.0(数字资产与智能合约)和区块链3.0(各种行业分布式应用落地)三个阶段.区块链在应用上分为公有链(PublicBlockChains).联盟链( ...
- Bootstrap3适配IE8浏览器的方法
<!--[if lte IE 8]> <script src="js/respond.min.js"></script> <script ...
- java变量、数据类型
public class Test { public static void main(String[] args) { //变量 //数据类型 变量名; //基本数据类型: //一个字节8位 //整 ...
- Hbase运维参考(项目)
1 Hbase日常运维 1.1 监控Hbase运行状况 1.1.1 操作系统 1.1.1.1 IO 群集网络IO,磁盘IO,HDFS IO IO越大说明文件读写操作越多.当IO突然增加时,有可能:1. ...
- Java学习笔记23---内部类之局部内部类只能访问final的局部变量
局部内部类是定义在方法体或代码块中的类,在笔记19中已有过简单介绍. 今天要讨论的是局部内部类为什么只能访问为常量的局部变量. 作者: 博客园--蝉蝉 请尊重作者劳动成果,转载请在标题注明“转载”字样 ...
- 《Cracking the Coding Interview》——第11章:排序和搜索——题目7
2014-03-21 22:05 题目:给你N个盒子堆成一座塔,要求下面盒子的长和宽都要严格大于上面的.问最多能堆多少个盒子? 解法1:O(n^2)的动态规划解决.其实是最长递增子序列问题,所以也可以 ...
- day06_04 购物车讲解02
1.0 补充知识 a,b = [2,3] print(a) print(b) #>>>2 #>>>3 a,b = (2,3) print(a) print(b) # ...
- OpenCV_1.0安装包下载
OpenCV_1.0安装包下载 点击下载