Java 如何使用 BouncyCastle?
How to use BouncyCastle with Java?
我已经阅读了 Bouncy Castle 网站上的说明,并在 Java 密码学、工具和技术中阅读了如何添加安全提供程序,但我仍然停留在基本用法上。
我有 JAR:bcprov-jdk15on-167.jar(在我的“当前目录”中)
和一些代码:
// import what for Bouncy Castle?
public class DigestDemo
{
public static String byteArrayToHex(byte[] a)
{
StringBuilder sb = new StringBuilder(a.length * 2);
for(byte b: a)
sb.append(String.format("%02x", b));
return sb.toString();
}
public static byte[] computeDigest(String digestName, byte[] data) throws NoSuchProviderException,
NoSuchAlgorithmException
{
MessageDigest digest = MessageDigest.getInstance(digestName, "BC");
digest.update(data);
return digest.digest();
}
public static void main(String[] args) throws Exception
{
Security.addProvider(new BouncyCastleProvider());
System.out.println(byteArrayToHex(computeDigest("SHA-256", "Hello World!".getBytes())));
}
}
但我对如何 运行 简单示例感到困惑。
说明说 JAR 必须在类路径中(最新的 Java 版本 jre/lib/ext 不再受支持)。所以我在我的当前目录中准备好使用 -cp 命令行选项 运行。无论我为导入提供什么似乎都不起作用,因为 javac 找不到包。
问题是如何编译才能使用 Bouncy Castle?
导入行是:
import org.bouncycastle.jce.provider.BouncyCastleProvider;
然后我可以使用 javac 以与 java 相同的方式指定类路径。
因此,使用 Powershell:
javac -cp .\bcprov-ext-jdk15on-167.jar .\DigestDemo.java
和 运行:
java -cp ";.\bcprov-ext-jdk15on-167.jar;." DigestDemo
我已经阅读了 Bouncy Castle 网站上的说明,并在 Java 密码学、工具和技术中阅读了如何添加安全提供程序,但我仍然停留在基本用法上。
我有 JAR:bcprov-jdk15on-167.jar(在我的“当前目录”中)
和一些代码:
// import what for Bouncy Castle?
public class DigestDemo
{
public static String byteArrayToHex(byte[] a)
{
StringBuilder sb = new StringBuilder(a.length * 2);
for(byte b: a)
sb.append(String.format("%02x", b));
return sb.toString();
}
public static byte[] computeDigest(String digestName, byte[] data) throws NoSuchProviderException,
NoSuchAlgorithmException
{
MessageDigest digest = MessageDigest.getInstance(digestName, "BC");
digest.update(data);
return digest.digest();
}
public static void main(String[] args) throws Exception
{
Security.addProvider(new BouncyCastleProvider());
System.out.println(byteArrayToHex(computeDigest("SHA-256", "Hello World!".getBytes())));
}
}
但我对如何 运行 简单示例感到困惑。
说明说 JAR 必须在类路径中(最新的 Java 版本 jre/lib/ext 不再受支持)。所以我在我的当前目录中准备好使用 -cp 命令行选项 运行。无论我为导入提供什么似乎都不起作用,因为 javac 找不到包。
问题是如何编译才能使用 Bouncy Castle?
导入行是:
import org.bouncycastle.jce.provider.BouncyCastleProvider;
然后我可以使用 javac 以与 java 相同的方式指定类路径。
因此,使用 Powershell:
javac -cp .\bcprov-ext-jdk15on-167.jar .\DigestDemo.java
和 运行:
java -cp ";.\bcprov-ext-jdk15on-167.jar;." DigestDemo