zoukankan      html  css  js  c++  java
  • 97 加密算法与消息摘要算法

    一 加密算法

    • 应用于数据传输
    • 通过算法,可以得到加密前的数据

    二 消息摘要算法

    • 应用于数据校验,比如文件完整性验证,存储密码
    • 根据算法获得的结果长度是固定的,不同的算法有不同的数据长度
    • 有不同消息获得同样运算结果,但概率极低
    • 相同的数据通过同一个算法获得的结果一定相同

    所以我们在说数据库存储用户密码时,要使用消息摘要算法而不是加密算法, 因为加密算法是可逆的,而消息摘要算法是不可逆的。这样,即使在数据库泄漏时,也不会暴露密码。

    我们存储用户通过算法后得到的数据,当用户登录时,通过此算法对用户输入的密码进行运算,如果密码正确,则运算的结果也一定是与数据库中存储的数据符合的。

    三 在java中使用消息摘要算法

    方法一:spring自带的摘要算法工具DigestUtils

    String password = "heyuhong";
    //消息摘要算法
    String md5Message = DigestUtils.md5DigestAsHex(password.getBytes());
    

      

    方法二:依赖包:Commons-codec

    此工具附带了多种消息摘要算法,对比上面的spring自带的算法来说,会比较好用。

    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
    </dependency>
    

      

    使用:

     String passowrd = "xxx";
    String md5Password=DigestUtils.md5Hex(password);//md5消息摘要算法

      

    推荐一种符合常规网站要求的密码:

    P@ssw0rd跟上一个你自己的标识号如生日。我们可以看到P@ssw0rd满足大小写及特殊符号和8位的要求,满足大多数网站的高级密码要求。再跟上一个属于自己的标识号就很棒了。

    例如P@ssw0rdcaiwei

  • 相关阅读:
    ASP.NET验证控件的使用 拓荒者
    读书笔记:MFC单文档应用程序结构分析 拓荒者
    MFC单文档(SDI)全屏程序的实现 拓荒者
    jQuery的animate函数
    设备尺寸杂谈:响应性Web设计中的尺寸问题
    Yeoman学习与实践笔记
    IE对文档的解析模式及兼容性问题
    推荐给开发和设计人员的iPad应用
    几个移动应用统计平台
    颜色、网页颜色与网页安全色
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12537481.html
Copyright © 2011-2022 走看看