情報暗号化のメッセージ要約アルゴリズムのSHA
4639 ワード
SHAはメッセージダイジェストアルゴリズムの実装方式であり,先にMD 245の実装をまとめたが,次にSHAの実装をまとめた.
SHAのjdk実装:
SHAのBC実装:
SHA 224の場合、JAVA jdkは実装を提供していないが、以下はBC実装を利用する方法である.
SHA 224については、JDKのような実装方法もある.
最後にCCのSHA実装について簡単に紹介します.
ここまでSHAの実現をまとめました.
SHAのjdk実装:
private static void SHA_JDK(){
try {
MessageDigest digest = MessageDigest.getInstance("SHA");// SHA\SHA-1\SHA-384\SHA-256\SHA-512
digest.update(src.getBytes());
System.out.println("SHA :"+Hex.encodeHexString(digest.digest()));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
SHAのBC実装:
private static void SHA_BC(){
Digest digest = new SHA1Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] shaByte = new byte[digest.getDigestSize()];
digest.doFinal(shaByte, 0);
System.out.println("shaByte : "+Hex.encodeHexString(shaByte));
}
SHA 224の場合、JAVA jdkは実装を提供していないが、以下はBC実装を利用する方法である.
private static void SHA224_BC(){
Digest digest = new SHA224Digest();
digest.update(src.getBytes(), 0, src.getBytes().length);
byte[] sha224Byte = new byte[digest.getDigestSize()];
digest.doFinal(sha224Byte, 0);
System.out.println("sha224Byte : "+Hex.encodeHexString(sha224Byte));
}
SHA 224については、JDKのような実装方法もある.
private static void SHA224_BC_JDK(){
Security.addProvider(new BouncyCastleProvider());
try {
MessageDigest digest = MessageDigest.getInstance("SHA-224");
digest.update(src.getBytes());
System.out.println("SHA224_BC_JDK :"+Hex.encodeHexString(digest.digest()));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
最後にCCのSHA実装について簡単に紹介します.
private static void SHA_CC_Byte(){
System.out.println("SHA_CC_Byte_SHA1 : "+DigestUtils.sha1Hex(src.getBytes()));
System.out.println("SHA_CC_Byte_SHA256 : "+DigestUtils.sha256Hex(src.getBytes()));
System.out.println("SHA_CC_Byte_SHA384 : "+DigestUtils.sha384Hex(src.getBytes()));
System.out.println("SHA_CC_Byte_SHA512 : "+DigestUtils.sha512Hex(src.getBytes()));
}
private static void SHA_CC(){
System.out.println("SHA_CC_SHA1 : "+DigestUtils.sha1Hex(src));
System.out.println("SHA_CC_SHA256 : "+DigestUtils.sha256Hex(src));
System.out.println("SHA_CC_SHA384 : "+DigestUtils.sha384Hex(src));
System.out.println("SHA_CC_SHA512 : "+DigestUtils.sha512Hex(src));
}
ここまでSHAの実現をまとめました.