• 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;
    
    }
  • 相关阅读:
    Python学习笔记(三)
    自己出的一套前端笔试题
    Vue 数组封装和组件data定义为函数一些猜测
    前端Mvvm QC 上传了测试版
    为什么我们的web前端变的越来越复杂
    grootJsAPI文档
    grootjs 简明教程
    深入grootJs(进阶教程)
    也议 js闭包和ie内存泄露原理
    此utf8 非彼utf8 ——谈http协议里的编码问题
  • 原文地址:https://www.cnblogs.com/dk2557/p/10599801.html
Copyright © 2020-2023  润新知