仅在方法范围内使用特定的 Java 安全提供程序

Using a specific Java security provider only in the scope of a method

所以我正在寻找仅在函数范围内使用安全提供程序的方法。我已经可以通过添加这两行来做到这一点:(假设 BouncyCastle 是提供者)

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
// do some stuff with converter
Security.removeProvider("BC");

所以我只想对 JcaPEMKeyConverter 使用 BC,然后对其余部分使用默认安全提供程序。

有更好的方法吗?更优雅?自定义 java 注释怎么样,这是一个好方法吗?

谢谢:)

如果您只想在 JcaPEMKeyConverter class use setProvider(java.security.Provider provider) instead of setProvider(java.lang.String providerName) 中使用 BouncyCastleProvider,如下所示:

JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider(new BouncyCastleProvider());

那么就不需要在安全提供者列表中添加和删除提供者,因此可以避免 Security.addProviderSecurity.removeProvider 调用。

希望对您有所帮助,