字符串生成64位hash字符串
使用sha-256生成32位byte数组,基本很难重复,再转化为64位16进制数字字符串。
import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class SHA256Util { public static void main(String[] args) { System.out.println(getSHA256StrJava("130")); System.out.println(getSHA256StrJava("13034234324weweasxwsqszASxsadreqq scdzsd")); System.out.println(getSHA256StrJava("13034234324weweasxwsqszASxsadreq{ww=bb,see=2ss}")); } public static String getSHA256StrJava(String str) { MessageDigest messageDigest; String encodeStr = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.update(str.getBytes("UTF-8")); encodeStr = byte2Hex(messageDigest.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return encodeStr; } private static String byte2Hex(byte[] bytes) { System.out.println(bytes.length); StringBuffer stringBuffer = new StringBuffer(); String temp = null; for (int i = 0; i < bytes.length; i++) { temp = Integer.toHexString(bytes[i] & 0xFF); if (temp.length() == 1) { // 1得到一位的进行补0操作 stringBuffer.append("0"); } stringBuffer.append(temp); } return stringBuffer.toString(); } }