BouncyCastle

Bouncycstle 是一款开源的密码包,其包含了大量的密码算法,其支持椭圆曲线密码算法。

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

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

public class TestDemo {
     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(new BigInteger(1, result).toString(16));
        }
         
     
          
}

总结:

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

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

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

原文地址:https://www.cnblogs.com/aikutao/p/12156149.html