基于Java語言MD5加密Base64轉(zhuǎn)換方法
更新時間:2017年09月12日 11:40:26 作者:隨風(fēng)奔跑的狼
這篇文章主要為大家詳細介紹了基于Java語言的MD5加密Base64轉(zhuǎn)換方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文提供了基于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ù)進行編碼轉(zhuǎn)換</p> * 作者:趙力 */ public class EncodeUtil { public static void main(String[] args) throws Exception { System.out.println(md5Encrypt16("需要進行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實現(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)為各種進制的字符串 * @param bytes byte[] * @param radix 可以轉(zhuǎn)換進制的范圍,從Character.MIN_RADIX到Character.MAX_RADIX,超出范圍后變?yōu)?0進制 * @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("報錯內(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("報錯內(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í)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- java常用工具類之DES和Base64加密解密類
- Java實現(xiàn)圖片與Base64編碼互轉(zhuǎn)
- Java實現(xiàn)BASE64編碼和解碼的方法
- 基于Java實現(xiàn)的Base64加密、解密原理代碼
- JS實現(xiàn)對中文字符串進行utf-8的Base64編碼的方法(使其與Java編碼相同)
- java BASE64Encoder詳細介紹及簡單實例
- java實現(xiàn)Base64加密解密算法
- Java 8實現(xiàn)圖片BASE64編解碼
- java 后臺將base64字符串保存為圖片的方法
- java自定義實現(xiàn)base64編碼轉(zhuǎn)換
- Java RSA加密解密實現(xiàn)方法分析【附BASE64 jar包下載】
- Java實現(xiàn)的Base64加密算法示例
相關(guān)文章
SpringBoot項目實現(xiàn)短信發(fā)送接口開發(fā)的實踐
本文主要介紹了SpringBoot項目實現(xiàn)短信發(fā)送接口開發(fā)的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10詳解SpringBoot構(gòu)建的Web項目如何在服務(wù)端校驗表單輸入
這篇文章主要介紹了詳解SpringBoot構(gòu)建的Web項目如何在服務(wù)端校驗表單輸入,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10帶你詳細了解Spring Security的注解方式開發(fā)
這篇文章主要介紹了詳解spring security四種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08SpringBoot返回前端Long類型字段丟失精度問題及解決方案
Java服務(wù)端返回Long整型數(shù)據(jù)給前端,JS會自動轉(zhuǎn)換為Number類型,本文主要介紹了SpringBoot返回前端Long類型字段丟失精度問題及解決方案,感興趣的可以了解一下2024-03-03