sha java 加密
奇怪的是不知道为啥,我的jdk版本是1.8按理说应该默认是sha-256,但加密后结果是sha-1
public class ShaUtil {
/**
* 对字符串加密,加密算法使用MD5,SHA-1,SHA-256,默认使用SHA-256 注意:奇怪但实际查看发现使用的默认是是sha-1
*
* @param strSrc 要加密的字符串
* @return 加密结果
*/
public static String encrypt(String strSrc) {
MessageDigest md = null;
String strDes = null;
byte[] bt = strSrc.getBytes();
try {
md = MessageDigest.getInstance("SHA");
md.update(bt);
strDes = bytes2Hex(md.digest()); // to HexString
} catch (NoSuchAlgorithmException e) {
return null;
}
return strDes;
}
public static String encrypt256(String strSrc,String key) {
MessageDigest md = null;
String strDes = null;
byte[] bt = strSrc.getBytes();
try {
md = MessageDigest.getInstance(key);
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) {
System.out.println(ShaUtil.encrypt("1234"));
System.out.println(ShaUtil.encrypt256("1234","SHA-1"));
System.out.println(ShaUtil.encrypt256("1234","SHA-256"));
}
运行结果
7110eda4d09e062aa5e4a390b0a572ac0d2c0220
7110eda4d09e062aa5e4a390b0a572ac0d2c0220
03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4
前端sha加密
export const encryptSHA1=(strSrc:any)=> {
const hash = CryptoJS.SHA1(strSrc);
return hash.toString();
}
这个运行结果就行java的用的sha1加密的结果