一。消息摘要算法
常用摘要算法:
以下 (HEX)内容:bc指Bouncy Castle | cc指:Apache commons Codec
1。消息摘要算法MD5及MD族(MD2,MD4)
消息摘要算法应用:
MD算法实现:
2。消息摘要算法SHA(安全散列算法)
SHA算法实现:
public class SHA { private static String src="SHA摘要算法"; public static void main(String[] args){ jdkSHA1(); //SHA摘要算法 } public static void jdkSHA1(){ try { MessageDigest md=MessageDigest.getInstance("SHA"); md.update(src.getBytes()); System.out.println("jdk SHA-1:"+ HexBin.encode(md.digest())); //jdk SHA-1:3AB4BF7221E8C15FD3E94C0D55DAFFF7B704F47C } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } public static void bcSHA1(){ Digest digest=new SHA1Digest(); digest.update(src.getBytes(),0,src.getBytes().length); byte[] sha1Bytes=new byte[digest.getDigestSize()]; digest.doFinal(sha1Bytes,0); System.out.println("bc sha-1:"+org.bouncycastle.util.encoders.Hex.toHexString(sha1Bytes)); } public static void bcSHA224(){ Digest digest=new SHA224Digest(); digest.update(src.getBytes(),0,src.getBytes().length); byte[] sha224Bytes=new byte[digest.getDigestSize()]; digest.doFinal(sha224Bytes,0); System.out.println("bc sha-224:"+org.bouncycastle.util.encoders.Hex.toHexString(sha224Bytes)); } public static void bcSHA224_2(){ Security.addProvider(new BouncyCastleProvider); //... } public static void ccSHA1(){ DigestUtils.sha1Hex(src.getBytes()); DigestUtils.sha1Hex(src); } //384/256/512... }