gpt4 book ai didi

java - 如何让 Java 使用我的安全提供程序?

转载 作者:太空狗 更新时间:2023-10-29 22:56:24 25 4
gpt4 key购买 nike

我为 AES/CBC/PKCS5Padding 编写了自定义安全提供程序。这很好用。

为了使 Java 将其识别为上述算法的有效提供程序,我需要向 Provider 添加哪些设置?我已经有了

public class FooBarProvider extends Provider {
public FooBarProvider() {
super("FooBar", 1.0, "Provider for AES.");
put("Cipher.AES", "foo.bar.AESCipher");
}
}

其中后一个参数是执行工作的实际 CipherSpi。我在哪里注册它支持 CBC 和 PKCS5Padding 的事实?当前要求相关的 Cipher 不返回我的类的实例:

Security.insertProviderAt(new FooBarProvider(), 1);
Cipher cip = Cipher.getInstance("AES/CBC/PKCS5Padding");
System.out.println(cip.getProvider()); //prints "SunJCE version 1.7"

最佳答案

编写代码是整个过程中最简单的部分。您已经声明您的类为 AES 提供了 Cipher 实现。这一行:

put("Cipher.AES", "foo.bar.AESCipher");

几乎是完成任务所需的全部。另请注意,由于您已在算法级别注册了密码实现,因此将自动为 modepadding 的所有组合调用您的实现。

话虽如此,编写代码是比较容易的部分。您正在创建密码,因此您需要先对 JAR 进行签名,然后才能将其安装和配置为提供程序。因为这个过程有些复杂,我不会在这里全部复制,而是建议您引用Oracle Guide on How to implement a Provider。 .它是完成此任务的绝佳来源。

如果按照指南进行操作但仍有问题,您可能需要下载并安装 JCE Unlimited Strength Policy适合您安装的 JDK。

关于java - 如何让 Java 使用我的安全提供程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com