核心代码,调用java类库实现的部分
MessageDigest messageDigest = MessageDigest.getInstance(KEY_SHA); //确定计算方法
messageDigest.update(inputData);
sha = new BigInteger(messageDigest.digest()); //生成散列码
完整代码
package SHA;
import java.math.BigInteger;
import java.security.MessageDigest;
/*
SHA(Secure Hash Algorithm,安全散列算法),数字签名等密码学应用中重要的工具,
被广泛地应用于电子商务等信息安全领域。虽然,SHA与MD5通过碰撞法都被破解了,
但是SHA仍然是公认的安全加密算法,较之MD5更为安全
*/
public class SHA {
public static final String KEY_SHA = "SHA";
public static String getResult(String inputStr){
BigInteger sha =null;
System.out.println("原始数据:"+inputStr);
byte[] inputData = inputStr.getBytes();
try{
MessageDigest messageDigest = MessageDigest.getInstance(KEY_SHA); //确定计算方法
messageDigest.update(inputData);
sha = new BigInteger(messageDigest.digest()); //生成散列码
System.out.println("SHA值:" + sha.toString(32));
} catch (Exception e) {
e.printStackTrace();
}
return sha.toString(32);
}
public static void main(String args[]){
try {
String inputStr = "cryptology";
getResult(inputStr);
} catch (Exception e){
e.printStackTrace();
}
}
}