BouncyCastleProvider 提供了md5工具,但是引用的话,如果加密算法名称相同,使用的是第三方的还是jdk的?
Topic source跟踪过了,进了jdk的DigestBase方法。
使用下边代码可以进BouncyCastle的。
package demo.encrypt;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.MD5Digest;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.Security;
/**
* 引入第三方加密jar包
*/
public class TestBouncyCastle {
public static void main(String[] args) throws Exception {
// 注册BouncyCastle:
Security.addProvider(new BouncyCastleProvider());
// 按名称正常调用:
// 按名称正常调用:
MD5Digest md = new MD5Digest();
byte[] bytes = "HelloWorld".getBytes("UTF-8");
md.update(bytes,0,bytes.length);
byte[] result = new byte[md.getDigestSize()];
md.doFinal(result, 0);
System.out.println(new BigInteger(1, result).toString(16));
}
}
- 1
两把刷子闯江湖
MessageDigest md = MessageDigest.getInstance("MD5");
通过同样的名称获取的工具,使用的是哪个呢?