zoukankan      html  css  js  c++  java
  • http登陆时的密码加密

    系统设计登陆页面的时候,需要谨慎。因为登陆数据是在网络上进行传输,很可能中途被拦截。

    最好的登陆是使用https,这样网络传输是安全的。google,baidu,alibaba都使用https的方式。

    但一般的企业网站,不一定会去部署https。因此我们要考虑在传输过程中加密,避免登录数据太容易被他人破解。

    用户在输入用户名,密码,点击登录,在提交数据前,我们应该考虑使用js对password进行加密(例如base64,hash等)。这样在网络上传输的是加密后的密码,给拦截者的破解工作带来一定难度。

    image

    示例代码:

    <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

  • 相关阅读:
    运行python脚本后台执行(转载)
    双积分式(A/D)转换器电路结构及工作原理
    SAR ADC简介
    [hdu-6395]Sequence 分块+矩阵快速幂
    [hdu-1272]小希的迷宫 并查集
    redhat7.2安全基线BI
    Oracle 12c RAC
    .gitlab-ci.yml简介
    gitlab
    Centos 7 Docker安装配置
  • 原文地址:https://www.cnblogs.com/hellowood23/p/5022854.html
Copyright © 2011-2022 走看看