• md5算法


    md5算法

    不可逆的:原文--》密文、用系统的API可以实现;

    123456 ---密文

    1987 ----密文;

     算法步骤:

    • 1、用每个byte去和11111111做与运算并且得到的是int类型的值: 

                byte & 11111111;

    • 2、把int 类型转成 16进制并返回String类型;
    • 3、不满八个二进制位就补全;
     1 public static void main(String[] args) throws NoSuchAlgorithmException {
     2 
     3       MessageDigest digest = MessageDigest.getInstance("md5");
     4 
     5       String password = "123456";
    
     9       byte [] result = digest.digest(password.getBytes());
    10 
    11       StringBuffer buffer  = new StringBuffer();
    12 
    13       for(byte b : result){ 
    15           //0xff是十六进制,十进制为255
    19          int nuber =  b & 0xff;
    21          String str = Integer.toHexString(nuber);
    23          if(str.length()==1){
    25             buffer.append("0"); 
    27          }
    29          buffer.append(str);
    33       } 
    35       //这就是MD5加密得到的值
    37       System.out.println(buffer);
    38 
    39    }

      会抛出没有事先准备的算法异常NoSuchAlgorithmException;

    • 4、网站验证算法是否正确(www.cmd5.com)、加密再加密再演示
    • 5、密码加盐,即byte相与的数不上标准的oxff,我们进行修改为oxfff或其他的
    • 6、银行密码保存是进行了15~30次重复加密,破解非常复杂,不用担心安全性
  • 相关阅读:
    jQuery实现图片延迟加载
    小猪学设计模式之—装饰者模式
    设计原则—依赖倒转原则
    ASP.NET MVC 在子页中引用头文件
    关于博客
    关于借钱
    面向对象编程(OOP)基础之UML基础
    C#抽象类、抽象方法、抽象属性
    小猪学设计模式——门面模式(外观模式)
    Eclipse 快捷键
  • 原文地址:https://www.cnblogs.com/mukekeheart/p/5784238.html
Copyright © 2020-2023  润新知