• 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

  • 相关阅读:
    矩阵微分
    Installing a single-server IBM FileNet P8 Platform system with IBM Content Navigator
    Linux创建LVM
    tomcat 集群配置,Session复制共享
    JBoss JMX登录需要用户名密码的解决办法
    JBOss启动只能在本机访问的解决办法
    SSH由WAS/Tomcat/Weblogic迁移到JBOSS
    Log4J实用配置指南
    Graphical installers are not supported by the vm
    在vim中执行外部命令
  • 原文地址:https://www.cnblogs.com/hellowood23/p/5022854.html
Copyright © 2020-2023  润新知