package com.zy.nc.util; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; public class SHA256Util { public static String getSHA256(String str, String key) { //���� byte[] salt = new byte[16]; try { SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); random.setSeed(key.getBytes()); random.nextBytes(salt); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } String salt_string = Base64Util.encryptBASE64(salt); System.out.println("salt_String::" + salt_string); return getSHA256(str + salt_string.replaceAll("\r|\n", "")); } private static String getSHA256(String str) { MessageDigest messageDigest; String encodestr = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.update(str.getBytes(StandardCharsets.UTF_8)); encodestr = byte2Hex(messageDigest.digest()); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } return encodestr; } private static String byte2Hex(byte[] bytes) { 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(); } }