首页 > 开发 > Java > 正文

基于Java语言MD5加密Base64转换方法

2024-07-13 10:11:56
字体:
来源:转载
供稿:网友

本文提供了基于MD5加密16位和32位的方法,具体内容如下

import java.io.IOException;import java.math.BigInteger;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/** * <p>标题:编码工具类</p> * <p>功能:对数据进行编码转换</p> * 作者:赵力 */public class EncodeUtil{  public static void main(String[] args) throws Exception  {    System.out.println(md5Encrypt16("需要进行MD5加密的字符串"));  }  /**   * MD5加密16位   * @param encryptStr 要加密数据   * @return 返回16位加密结果   * ZhaoLi   */  public static String md5Encrypt16(String encryptStr)  {    return md5Encrypt32(encryptStr).substring(8, 24);  }  /**   * MD5加密32位   * @param encryptStr 要加密数据   * @return 32位加密结果   * ZhaoLi   */  public static String md5Encrypt32(String encryptStr)  {    MessageDigest md5;    try    {      md5 = MessageDigest.getInstance("MD5");      byte[] md5Bytes = md5.digest(encryptStr.getBytes());      StringBuffer hexValue = new StringBuffer();      for (int i = 0; i < md5Bytes.length; i++)      {        int val = (md5Bytes[i]) & 0xff;        if (val < 16)        {          hexValue.append("0");        }        hexValue.append(Integer.toHexString(val));      }      return hexValue.toString().toLowerCase();    } catch (Exception e)    {      throw new RuntimeException(e);    }  }  /**    * 结合base64实现md5加密    * @param msg 待加密字符串    * @return 获取md5后转为base64    * @throws Exception    */  public static String md5EncryptBase64(String msg) throws Exception  {    return msg == null ? null : base64Encode(md5(msg));  }  /**    * 将byte[]转为各种进制的字符串    * @param bytes byte[]    * @param radix 可以转换进制的范围,从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制    * @return 转换后的字符串    */  public static String binary(byte[] bytes, int radix)  {    return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数   }  /**    * base 64 encode    * @param bytes 待编码的byte[]    * @return 编码后的base 64 code    */  public static String base64Encode(byte[] bytes)  {    return new BASE64Encoder().encode(bytes);  }  /**    * base 64 decode    * @param base64Code 待解码的base 64 code    * @return 解码后的byte[]    * @throws Exception    */  public static byte[] base64Decode(String base64Code)  {    try    {      return base64Code == null ? null : new BASE64Decoder().decodeBuffer(base64Code);    } catch (IOException e)    {      throw new RuntimeException("报错内容", e);    }  }  /**    * 获取byte[]的md5值    * @param bytes byte[]    * @return md5    * @throws Exception    */  public static byte[] md5(byte[] bytes)  {    MessageDigest md;    try    {      md = MessageDigest.getInstance("MD5");    } catch (NoSuchAlgorithmException e)    {      throw new RuntimeException("报错内容", e);    }    md.update(bytes);    return md.digest();  }  /**    * 获取字符串md5值    * @param msg    * @return md5    * @throws Exception    */  public static byte[] md5(String msg)  {    return msg == null ? null : md5(msg.getBytes());  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表