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

时间: 2024-10-20 12:20:24

http登陆时的密码加密的相关文章

如何保证用户登陆时提交密码已经加密

如何保证用户登陆时提交密码已经加密?密码是否已加密,需要客户端和服务端建立约定,双方按约定办事就行了. 这里提到的另一个问题是,如何保证传输安全?最理想的方案当然是走 HTTPS 协议. HTTPS 在理论上是可靠的,但在国内会打一些折扣:你可以随便找一台电脑看看有没有安装商业公司或机构的根证书,这些根证书为线路某节点成为中间人提供了可能性:同时,在木马横行的年代,密码在加密提交前可能就被拿到了,此时 HTTPS 成了摆设,这是为什么国内流行密码控件的一个重要原因. 从成本和需求上考虑,对于众多

通过js来设置cookie和读取cookie,实现登陆时记住密码的功能

function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var pwd = $("#login_password").val(); //获取登陆密码信息 var checked = $("[name='checkbox']:checked");//获取“是否记住密码”复选框 if(checked && checked.le

13flask密码加密

一,了解密码加密方式 密码具有私有性较强的特性,预测密码加密对个人隐私的保护有这非常大的作用.在用flask搭建网站时候若服务器有被攻破的风险,要是用户表中密码字段也被拿走,后果将不堪设想. 在密码保护中主要有密码加密和密码存储两种方式: 1,密码加密 主要是在密码本身加密过程中的处理策略. 明文转码加密:BASE64, 7BIT等.BASE64只是利用索引对应关系进行加密的方式,具有可逆性,在安全性上只比明文的安全性高一点点,这种方式并不能算做真正的加密. 对称算法加密:DES, RSA等.D

登陆验证前对用户名和密码加密之后传输数据---base64加密

以下这种方法是加密传输的简单实现 1,base64.js /** * * Base64 encode / decode * * */ function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; // public method for encoding this.encode = function (input

MySQL之登陆密码加密认证脚本

一.登陆密码加密认证脚本应用场景 日常操作,经常明文指定了MySQL密码来登录MySQL服务,在登录成功之后就会抛出下面的警告:[root@git-server ~]# mysql -uroot -p'wujianwei' Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MyS

extmail 密码加密方式修改为plain-md5的方法

extmail默认密码加密方式是md5crypt,但是有些时候会遇到这样的问题--老的邮件系统中的用户密码是md5加密的. 此时需要将extmail的密码加密方式修改为md5,通过官方解释(md5和md5crypt没有区别),修改为plain-md5即可.但是,这只解决了web登陆的验证问题,没有解决smtp以及pop3的验证问题. 通过 http://www.extmail.org/forum/viewthread.php?tid=3175 帖子解决了验证问题,内容摘录如下: courier-

(三)学习MVC之密码加密及用户登录

1.密码加密采用SHA256 算法,此类的唯一实现是 SHA256Managed.在Common/Text.cs里添加Sha256方法: public static string Sha256(string plainText) { SHA256Managed _sha256 = new SHA256Managed(); byte[] _cipherText = _sha256.ComputeHash(Encoding.Default.GetBytes(plainText)); return C

Spring Security 4 整合Hibernate Bcrypt密码加密(带源码)

[相关已翻译的本系列其他文章,点击分类里面的spring security 4] [ 翻译by 明明如月 QQ 605283073] 上一篇文章: Spring Security 4 Hibernate整合 注解和xml例子(带源码) 下一篇文章:Spring Security 4 整合Hibernate 实现持久化登录验证(带源码) 原文地址:http://websystique.com/spring-security/spring-security-4-password-encoder-bc

Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证

一:先从登录开始,直接看代码 @RequestMapping(value="dologin",method = {RequestMethod.GET, RequestMethod.POST},produces="text/html;charset=UTF-8") @ResponseBody public ResultJson systemUserdologin(XXX xxx,HttpServletRequest request,HttpServletRespons