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()
注冊。