最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Java語言MD5加密Base64轉(zhuǎn)換方法

 更新時(shí)間:2017年09月12日 11:40:26   作者:隨風(fēng)奔跑的狼  
這篇文章主要為大家詳細(xì)介紹了基于Java語言的MD5加密Base64轉(zhuǎn)換方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文提供了基于MD5加密16位和32位的方法,具體內(nèi)容如下

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>標(biāo)題:編碼工具類</p>
 * <p>功能:對數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換</p>
 * 作者:趙力
 */
public class EncodeUtil
{
  public static void main(String[] args) throws Exception
  {
    System.out.println(md5Encrypt16("需要進(jìn)行MD5加密的字符串"));
  }

  /**
   * MD5加密16位
   * @param encryptStr 要加密數(shù)據(jù)
   * @return 返回16位加密結(jié)果
   * ZhaoLi
   */
  public static String md5Encrypt16(String encryptStr)
  {
    return md5Encrypt32(encryptStr).substring(8, 24);
  }

  /**
   * MD5加密32位
   * @param encryptStr 要加密數(shù)據(jù)
   * @return 32位加密結(jié)果
   * 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);
    }
  }

  /** 
   * 結(jié)合base64實(shí)現(xiàn)md5加密 
   * @param msg 待加密字符串 
   * @return 獲取md5后轉(zhuǎn)為base64 
   * @throws Exception 
   */
  public static String md5EncryptBase64(String msg) throws Exception
  {
    return msg == null ? null : base64Encode(md5(msg));
  }

  /** 
   * 將byte[]轉(zhuǎn)為各種進(jìn)制的字符串 
   * @param bytes byte[] 
   * @param radix 可以轉(zhuǎn)換進(jìn)制的范圍,從Character.MIN_RADIX到Character.MAX_RADIX,超出范圍后變?yōu)?0進(jìn)制 
   * @return 轉(zhuǎn)換后的字符串 
   */
  public static String binary(byte[] bytes, int radix)
  {
    return new BigInteger(1, bytes).toString(radix);// 這里的1代表正數(shù) 
  }

  /** 
   * 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("報(bào)錯(cuò)內(nèi)容", 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("報(bào)錯(cuò)內(nèi)容", 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());
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實(shí)現(xiàn)動(dòng)態(tài)上傳多個(gè)文件并解決文件重名問題

    java實(shí)現(xiàn)動(dòng)態(tài)上傳多個(gè)文件并解決文件重名問題

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)上傳多個(gè)文件,并解決文件重名問題的方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Java實(shí)現(xiàn)二叉堆、大頂堆和小頂堆

    Java實(shí)現(xiàn)二叉堆、大頂堆和小頂堆

    二叉堆就是完全二叉樹,或者是靠近完全二叉樹結(jié)構(gòu)的二叉樹。大頂堆要求對于一個(gè)節(jié)點(diǎn)來說,它的左右節(jié)點(diǎn)都比它??;小頂堆要求對于一個(gè)節(jié)點(diǎn)來說,它的左右節(jié)點(diǎn)都比它大。本文將用Java分別實(shí)現(xiàn)二叉堆、大頂堆和小頂堆。需要的可以參考一下
    2022-01-01
  • 在SpringBoot中通過jasypt進(jìn)行加密解密的方法

    在SpringBoot中通過jasypt進(jìn)行加密解密的方法

    今天小編就為大家分享一篇關(guān)于在SpringBoot中通過jasypt進(jìn)行加密解密的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 零基礎(chǔ)寫Java知乎爬蟲之將抓取的內(nèi)容存儲(chǔ)到本地

    零基礎(chǔ)寫Java知乎爬蟲之將抓取的內(nèi)容存儲(chǔ)到本地

    上一回我們說到了如何把知乎的某些內(nèi)容爬取出來,那么這一回我們就說說怎么把這些內(nèi)容存儲(chǔ)到本地吧。
    2014-11-11
  • RestTemplate上傳、下載文件實(shí)例代碼

    RestTemplate上傳、下載文件實(shí)例代碼

    介紹了文件上傳和下載的基本方法,包括處理本地文件和文件流,上傳時(shí)區(qū)分了文件是否在本地,下載時(shí)強(qiáng)調(diào)返回值為byte[],并提供了工具類進(jìn)行進(jìn)一步處理
    2025-02-02
  • Spring?Boot中的@EnableAutoConfiguration注解詳解

    Spring?Boot中的@EnableAutoConfiguration注解詳解

    這篇文章主要介紹了Spring?Boot中的@EnableAutoConfiguration注解詳解,Spring?Boot是一個(gè)非常流行的Java框架,它可以快速創(chuàng)建基于Spring的應(yīng)用程序。Spring?Boot提供了許多自動(dòng)配置功能,使得開發(fā)者可以非常容易地創(chuàng)建一個(gè)可運(yùn)行的應(yīng)用程序,需要的朋友可以參考下
    2023-08-08
  • 一文帶你輕松掌握EasyExcel的使用技巧

    一文帶你輕松掌握EasyExcel的使用技巧

    EasyExcel是一個(gè)基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,這篇文章就來帶大家深入了解EasyExcel的使用技巧,需要的可以參考一下
    2023-06-06
  • mybatis根據(jù)表逆向自動(dòng)化生成代碼的實(shí)現(xiàn)

    mybatis根據(jù)表逆向自動(dòng)化生成代碼的實(shí)現(xiàn)

    若采用mybatis框架,數(shù)據(jù)庫新建表,手動(dòng)編寫的話,需要編寫大量的實(shí)體類、mapper文件、mapper.xml文件,都是一些重復(fù)且有規(guī)律的工作。我們可以引用插件,然后做配置,自動(dòng)生成這些文件,本文就來詳細(xì)的介紹一下
    2021-08-08
  • 如何發(fā)布jar包到maven中央倉庫

    如何發(fā)布jar包到maven中央倉庫

    這篇文章主要介紹了發(fā)布jar包到maven中央倉庫的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • SpringBoot整合Tomcat連接池的使用

    SpringBoot整合Tomcat連接池的使用

    這篇文章主要介紹了SpringBoot整合Tomcat連接池的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

揭东县| 绥宁县| 青田县| 肥乡县| 巫溪县| 墨江| 出国| 屏东市| 遂昌县| 南陵县| 根河市| 五莲县| 清镇市| 重庆市| 博乐市| 赤水市| 峡江县| 西丰县| 台中市| 财经| 贵州省| 淅川县| 邛崃市| 北流市| 永昌县| 鹰潭市| 莆田市| 交城县| 贡嘎县| 浮梁县| 和平区| 古丈县| 五寨县| 谷城县| 龙海市| 八宿县| 成武县| 绥德县| 盱眙县| 新干县| 岳普湖县|