阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

BouncyCastle

23次阅读
没有评论

共计 958 个字符,预计需要花费 3 分钟才能阅读完成。

我们知道,Java 标准库提供了一系列常用的哈希算法。

但如果我们要用的某种算法,Java 标准库没有提供怎么办?

方法一:自己写一个,难度很大;

方法二:找一个现成的第三方库,直接使用。

BouncyCastle 就是一个提供了很多哈希算法和加密算法的第三方库。它提供了 Java 标准库没有的一些算法,例如,RipeMD160 哈希算法。

我们来看一下如何使用 BouncyCastle 这个第三方提供的算法。

首先,我们必须把 BouncyCastle 提供的 jar 包放到 classpath 中。这个 jar 包就是bcprov-jdk18on-xxx.jar,可以从官方网站下载。

Java 标准库的 java.security 包提供了一种标准机制,允许第三方提供商无缝接入。我们要使用 BouncyCastle 提供的 RipeMD160 算法,需要先把 BouncyCastle 注册一下:

public class Main {public static void main(String[] args) throws Exception {// 注册 BouncyCastle:
        Security.addProvider(new BouncyCastleProvider());
        // 按名称正常调用:
        MessageDigest md = MessageDigest.getInstance("RipeMD160");
        md.update("HelloWorld".getBytes("UTF-8"));
        byte[] result = md.digest();
        System.out.println(HexFormat.of().formatHex(result));
    }
}

其中,注册 BouncyCastle 是通过下面的语句实现的:

Security.addProvider(new BouncyCastleProvider());

注册只需要在启动时进行一次,后续就可以使用 BouncyCastle 提供的所有哈希算法和加密算法。

练习

使用 BouncyCastle 提供的 RipeMD160 计算哈希。

下载练习

小结

BouncyCastle 是一个开源的第三方算法提供商;

BouncyCastle 提供了很多 Java 标准库没有提供的哈希算法和加密算法;

使用第三方算法前需要通过 Security.addProvider() 注册。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-08-05发表,共计958字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中