zoukankan      html  css  js  c++  java
  • Java MD5获取

    MD5算法具有以下特点:
    1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
    2、容易计算:从原数据计算出MD5值很容易。
    3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
    4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
    MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1RIPEMD以及Haval等。
     
    MD5 是非对称的加密算法(PS:对称加密就是加密用的密码和解密用的密码是一样的,非对称就是加密和解密用的密钥不一样)。
     

    maven 引入apache的jar(不是maven项目,去网上下一个jar手动引入)

    <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-lang3</artifactId>
         <version>3.3.2</version>
    </dependency>

    代码:

    import java.security.MessageDigest;
    
    public static String getmd5(String mesage){
    
      String digest=null;
    
      MessageDigest md;
    
       try{
    
        md=MessageDigest.getInstance("MD5");
        byte[] hash=md.digest(mesage.getBytes("UTF-8"));
        StringBuilder sb=new StringBuilder(2*hash.length);
        for(byte b:hash){
    
          sb.append(String.format("%02x",b&0xff));
    
        }
        digest =sb.toString();
      } catch(NoSuchAlgorithmException | UnsupportedEncodingException e){
    
        e.printStackTrace();
    
      }
    
      return digest;
    
    }
  • 相关阅读:
    C++Builder中的异常传递
    lpc1343 usb isp not work in linux and mac
    玩玩Hiweed linux 2.0
    有关 stringWithString 和 initWithString
    Windows mobile 中获取内存使用情况
    玩玩xubuntu 8.10
    升级我的ipaq hx2110到Windows Mobile 6.0
    面试技巧 from IBM
    常用Sql语句
    c#的事件机制示例代码: 猫> 老鼠, 主人
  • 原文地址:https://www.cnblogs.com/dk2557/p/10599801.html
Copyright © 2011-2022 走看看