• 加密


    加密分可以加密和不可逆加密

    jar包: commons-codec.jar
    MD5加密
    String md5 = DigestUtils.md5Hex("000000");
    System.out.println(md5);
    SHA1加密
    String sha1 = DigestUtils.shaHex("000000");
    System.out.println(sha1);
    这种方式适用于服务端加密,可以讲密码用密文存储
    密码加盐:
    盐值固定:一系列很难猜到的字符加到密码的前面和后面,这串盐值应该很难被破解掉,或者破解了需要付出很长的事件才可以。但是这种方式也不是绝对安全的,MD5加密依然是有风险的。
    盐值不固定:在密码的前后加上一串字符,这个字符是不定的,可以使用户的ID、注册日期等等,这种方法加密更难被破解。安全系数较高。
    虽然这种方式安全系数较高但是并不是说这种就是最安全的,当黑客获得了这个盐值生成的算法,那么加密和不加密就是一样的。


    JavaScript加密
    http://code.google.com/p/crypto-js/
    <script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/sha1.js"></script>
    <script>
    varhash = CryptoJS.SHA1("Message");
    </script>
    <script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/md5.js"></script>
    <script>
    varhash = CryptoJS.MD5("Message");
    </script>
    这种方式适用于客户端加密,在客户端点击了登录按钮的时候将密码加密,但是这种加密方式虽然在网络上不是明文传输,但是当用户获得了从客户端发送过来的经过加密的密文,经过彩虹表的对照还是可以获得用户的明文密码,并且当黑客以密文的形式将密码提交给对应的处理Post的接口,那么将依然对安全方面没有任何保障。
    为了保证更好的加密效果推荐使用Https来对登录和注册进行加密,也即是说在http层上建立一个SSL传输层,使得用户发送的数据在传输到网卡上的时候就是已经被加密过的了。但是这种方式加密的数据,服务器在收到相应的数据之后还得再继续解密,解密之后,获得用户请求的数据,服务器在响应用户请求之前,还要对用户请求的数据进行加密,这样会非常消耗服务器的硬件资源。这种方式会比普通的http协议多消耗30%的硬件资源。

  • 相关阅读:
    spring框架学习(六)AOP
    spring框架学习(五)注解
    spring框架学习(三)
    spring框架学习(四)自动装配
    spring框架学习(二)依赖注入
    解决Photoshop不支持webp格式图片问题
    计算机导论-5、6
    计算机导论-3、4
    计算机导论-1、2
    Android SDK Manager国内下载缓慢的问题
  • 原文地址:https://www.cnblogs.com/shininguang/p/4923043.html
Copyright © 2020-2023  润新知