Java中有兩種常用的加密算法:hex_md5和md5。這兩個算法通常用于密碼加密或者文件校驗等需要加密操作的場景。
hex_md5算法基于md5算法,但是輸出結果是以十六進制形式表示的。其具體實現可以通過以下代碼展示:
import java.security.MessageDigest; public class MD5Util { private static final String HEX_DIGITS = "0123456789abcdef"; public static String hex_md5(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] md5Bytes = md.digest(input.getBytes()); StringBuilder sb = new StringBuilder(); for (byte b : md5Bytes) { sb.append(HEX_DIGITS.charAt((b >>4) & 0x0f)).append(HEX_DIGITS.charAt(b & 0x0f)); } return sb.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } }
而普通的md5算法則是將輸出結果以二進制形式表示的。代碼實現如下:
import java.security.MessageDigest; public class MD5Util { public static String md5(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(input.getBytes()); byte byteData[] = md.digest(); StringBuilder sb = new StringBuilder(); for (byte b : byteData) { sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1)); } return sb.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } }
通過以上代碼,可以在Java環境下方便地實現密碼或者文件的加密,讓數據更加安全可靠。