MD5 JAVA
程序员文章站
2022-04-02 16:33:25
...
别人的代码
import java.security.MessageDigest; public class Encrypt { /** * MD5 . 发生错误则返回空字符串<br/> * 处理后的值有 32 位<br/> * * @param str * @param runTime * : 运行次数, 1 到 10 之间, 默认为 2 次. 可以从架构全局配置文件中读 */ public static String toMD5(String str, int runTime) { runTime = (runTime < 0 || runTime > 10) ? 2 : runTime; String param = encryption(str, "MD5"); return (runTime > 1) ? toMD5(param, --runTime) : param; } /** * SHA . 发生错误则返回空字符串<br/> * 处理后的值有 40 位 * * @param str * @param runTime * : 运行次数, 1 到 10 之间, 默认为 2 次. 可以从架构全局配置文件中读 */ public static String toSHA(String str, int runTime) { runTime = (runTime < 0 || runTime > 10) ? 2 : runTime; // 或 SHA 都可以 String param = encryption(str, "SHA-1"); return runTime > 1 ? toSHA(param, --runTime) : param; } /** * encrypt * * @param str * @param algorithm * : 支持 MD5 或 SHA 两种 * @return String */ private static String encryption(String str, String algorithm) { try { MessageDigest message = MessageDigest.getInstance(algorithm); message.reset(); message.update(str.getBytes("utf-8")); byte[] md = message.digest(); StringBuffer sbd = new StringBuffer(); for (int i = 0; i < md.length; i++) { String temp = Integer.toHexString(0xFF & md[i]); if (temp.length() == 1) sbd.append("0"); sbd.append(temp); } return sbd.toString(); } catch (Exception e) { return ""; } } public static void main(String[] args) { System.out.println(toMD5("good", 1)); } }