可以進行SHA-1,SHA-224,SHA-256,SHA-384,SHA-512五種算法簽名的工具類,以及簡單說明


import java.security.MessageDigest;

public class SignatureSHA {
public static String signSHA(String sha,Object ...arguments){
try{
StringBuffer stringSignTemp = new StringBuffer();
for (int i = 0; i < arguments.length; i++) {
stringSignTemp.append(arguments[i]);
}
System.out.println("stringSignTemp:"+stringSignTemp);
MessageDigest sha1 = MessageDigest.getInstance(sha);//可以進行,SHA-1,SHA-224,SHA-256,SHA-384,SHA-512五種算法簽名
sha1.update(stringSignTemp.toString().getBytes("utf-8"));
byte[] sha1Bytes = sha1.digest();
String sign = bin2hex(sha1Bytes);
return sign.toString();
}catch(Exception e){
return null;
}
}
public static String bin2hex(byte[] bin)
{
char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
StringBuilder sb = new StringBuilder();
for (int i = 0 ; i < bin.length; i++)
{
char upper = hex[(bin[i] & 0xf0) >>> 4];
char lower = hex[(bin[i] & 0x0f)];
sb = sb.append(upper).append(lower);
}
return sb.toString();
}
public static void main(String[] args) {
String sign=signSHA("SHA-224","123",111,888);//假設123是加密密鑰
System.out.println(sign);
}
}

SHA是常用的數據加密算法,

特點:1.加密后秘聞長度定長;2.與md5加密一樣不可逆,無法解密;

驗證方法: 數據+密鑰,密鑰是任意長度字符串,需要進行簽名的數據,把密鑰和數據拼起來,然后加密。

SHA-1,SHA-224,SHA-256,SHA-384,SHA-512五種算法簽名的加密原理類似。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM