/**
* 备用方案 SHA256加密
* @author zx
*/
public class SHA256Util {
public static void main(String[] args) {
System.out.println(getSHA256StrJava("130"))
System.out.println(getSHA256StrJava("130"))
}
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) {
StringBuffer stringBuffer = new StringBuffer()
String temp = null
for (int i = 0i <bytes.lengthi++) {
temp = Integer.toHexString(bytes[i] &0xFF)
if (temp.length() == 1) {
//1得到一位的进行补0操作
stringBuffer.append("0")
}
stringBuffer.append(temp)
}
return stringBuffer.toString()
}
}
package org.zhang.sha_256import java.security.MessageDigest
import java.security.NoSuchAlgorithmException
public class StringEncrypt {
/**
* 对字符串加密,加密算法使用MD5,SHA-1,SHA-256,默认使用SHA-256
*
* @param strSrc
* 要加密的字符串
* @param encName
* 加密类型
* @return
*/
public static String Encrypt(String strSrc, String encName) {
MessageDigest md = null
String strDes = null
byte[] bt = strSrc.getBytes()
try {
if (encName == null || encName.equals("")) {
encName = "SHA-256"
}
md = MessageDigest.getInstance(encName)
md.update(bt)
strDes = bytes2Hex(md.digest()) // to HexString
} catch (NoSuchAlgorithmException e) {
return null
}
return strDes
}
public static String bytes2Hex(byte[] bts) {
String des = ""
String tmp = null
for (int i = 0 i < bts.length i++) {
tmp = (Integer.toHexString(bts[i] & 0xFF))
if (tmp.length() == 1) {
des += "0"
}
des += tmp
}
return des
}
public static void main(String args[]){
String s=StringEncrypt.Encrypt("qq群", "227297422")
System.out.println(s)
}
}
请参考import java.security.MessageDigest
import java.security.NoSuchAlgorithmException
public class BenchmarkSha256 {
public static void main(String[]args) throws NoSuchAlgorithmException {
int size = 1024 * 1024
byte[] bytes = new byte[size]
MessageDigest md = MessageDigest.getInstance("SHA-256")
long startTime = System.nanoTime()
for (int i = 0i <1024i++)
md.update(bytes, 0, size)
long endTime = System.nanoTime()
System.out.println(String.format("%14x", new java.math.BigInteger(1, md.digest())))
System.out.println(String.format("%d ms", (endTime - startTime) / 1000000))
}
}