全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文提供了基于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());
  }
}

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


# Java  # MD5  # 加密  # java常用工具类之DES和Base64加密解密类  # Java实现图片与Base64编码互转  # Java实现BASE64编码和解码的方法  # 基于Java实现的Base64加密、解密原理代码  # JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)  # java BASE64Encoder详细介绍及简单实例  # java实现Base64加密解密算法  # Java 8实现图片BASE64编解码  # java 后台将base64字符串保存为图片的方法  # java自定义实现base64编码转换  # Java RSA加密解密实现方法分析【附BASE64 jar包下载】  # Java实现的Base64加密算法示例  # 报错  # 具体内容  # 大家多多  # String  # main  # Exception  # throws  # args  # public  # 赵力  # EncodeUtil  # void  # static  # System  # ZhaoLi  # substring  # println  # param  # return  # encryptStr 


相关文章: 如何在腾讯云免费申请建站?  建站之星会员如何解锁更多建站功能?  h5网站制作工具有哪些,h5页面制作工具有哪些?  小程序网站制作需要准备什么资料,如何制作小程序?  如何在万网ECS上快速搭建专属网站?  如何做网站制作流程,*游戏网站怎么搭建?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  中山网站制作网页,中山新生登记系统登记流程?  如何在建站之星网店版论坛获取技术支持?  建站之星官网登录失败?如何快速解决?  建站之星好吗?新手能否轻松上手建站?  如何快速搭建个人网站并优化SEO?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  ,网页ppt怎么弄成自己的ppt?  香港服务器如何优化才能显著提升网站加载速度?  如何在阿里云虚拟服务器快速搭建网站?  网页设计与网站制作内容,怎样注册网站?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  已有域名和空间如何快速搭建网站?  建站之星如何通过成品分离优化网站效率?  如何通过可视化优化提升建站效果?  建站之星伪静态规则如何设置?  如何批量查询域名的建站时间记录?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  官网建站费用明细查询_企业建站套餐价格及收费标准指南  建站之星如何实现网站加密操作?  建站主机选哪家性价比最高?  ,购物网站怎么盈利呢?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  php json中文编码为null的解决办法  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  如何在宝塔面板中修改默认建站目录?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  如何访问已购建站主机并解决登录问题?  如何彻底卸载建站之星软件?  宿州网站制作公司兴策,安徽省低保查询网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  定制建站如何定义?其核心优势是什么?  ui设计制作网站有哪些,手机UI设计网址吗?  Python如何创建带属性的XML节点  安徽网站建设与外贸建站服务专业定制方案  如何登录建站主机?访问步骤全解析  如何用花生壳三步快速搭建专属网站?  公司门户网站制作流程,华为官网怎么做?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何制作算命网站,怎么注册算命网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  c# await 一个已经完成的Task会发生什么 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。