Java密码学 - 1.摘要算法API

  1. 消息摘要算法 Message-Digest Algorithm
    1. Apache Commons Codec
    2. bouncy castle的crypto包
    3. java.security包
    4. 思考分析

消息摘要算法 Message-Digest Algorithm

Apache Commons Codec

Apache Commons Codec (TM) software provides implementations of common encoders and decoders such as Base64, Hex, Phonetic and URLs.

如文档所述 , Apache的该package用于常用的加密和解密,因此暴露的细节更少。

20170717234551755

1
2
//工具包的形式
DigestUtils.sha1Hex("abc");

bouncy castle的crypto包

crypto包含有各种加密方式,其中digest就是摘要算法。

1
2
3
4
   Digest digest = new SHA1Digest();//接口多态
   digest.update(src.getBytes(), 0, src.length());//导入数据
   Byte[] shaBytes = new byte[digest.getDigestSize()];//创建byte[],作为结果
   digest.doFinal(shaBytes, 0);//将结果导出至byte[]中

java.security包

1
2
3
//MessageDigest类
MessageDigest messageDigest = MessageDigest.getInstance("SHA");//工厂类
Byte[] shaBytes = messageDigest.digest(src.getBytes());//导入数据,获得结果

思考分析

通过观察三种API,我们会发现三者区别于:暴露的细节数目