废话 不说直接上码
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
- Created by
*/
/**
-
SHA加密
/
public class SHA512 {
/*- 传入文本内容,返回SHA-256 串
/
static String key = "…@#¥123";// 此处填写一些特殊的字符串来达到加密的效果,如!@#$%^&123"等等
public static String encry256(final String strText) {
return SHA(strText+key, “SHA-256”);
}/**
- 传入文本内容,返回SHA-512 串
*/
public static String encry512(final String strText) {
return SHA(strText+key, “SHA-512”);
}
/**
-
字符串 SHA加密
*/
private static String SHA(final String strText, final String strType) {// 返回值
String strResult = null;// 是否是有效的字符串
if (strText != null && strText.length() > 0) {// 加密开始,创建加密对象,并传入加密类型 try { MessageDigest messageDigest = MessageDigest.getInstance(strType); // 传入加密的字符串 messageDigest.update(strText.getBytes()); // 得到bytes类型结果 byte[] byteBuffer = messageDigest.digest(); //将byte转为string StringBuffer strHexString = new StringBuffer(); for (int i = 0; i < byteBuffer.length; i++) { String hex = Integer.toHexString(0xff & byteBuffer[i]); if (hex.length() == 1) { strHexString.append('0'); } strHexString.append(hex); } // 得到返回的结果 strResult = strHexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); }
}
return strResult;
}
/**
- SHA256 验证加密
- @param text 明文
- @param sha 密文
- @return
- @throws Exception
*/
public static boolean verify256(String text, String sha) throws Exception {
//根据传入的密钥进行验证
String s = encry256(text);
if (s.equalsIgnoreCase(sha)) {
System.out.println(“SHA256验证通过”);
return true;
}
return false;
}
/**
- 测试
- @param args
*/
public static void main(String[] args) {
try {
String text = “12356”;//明文
String s = encry256(text); //加密
System.out.println(“加密后的密码为:” + s);
boolean a = verify256(text, s);
System.out.println(a);
} catch (Exception e) {
e.printStackTrace();
}
}
} - 传入文本内容,返回SHA-256 串