问题标签 [jce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
202 浏览

java - 如何在没有证书的情况下添加 Java 安全提供程序?

我想知道,有没有办法在我的本地机器上添加一个新的 java 安全提供程序而不将它发送到 Oracle 以获得证书?

问题是我正在学习 JCA 并且有一个任务来实现我自己的提供者(主要任务是实现一些算法)。但是如果不实际使用我的提供者,就不可能理解 JCA 的非常重要的原则。阅读文档和查看源文件是不够的。

0 投票
2 回答
2748 浏览

java - 带有 SSL 连接的 Java NoClassDefFoundError

我们有一个应用程序使用 JAX-RPC 客户端库并在 Java 的旧版本 (1.4.2) 上运行,并且收到以下 SSL 错误:

这以前对我们有用,客户端库的唯一更改是与使用的身份验证协议相关的更改,并且需要更新到最新版本的 BouncyCastle。这些变化都比 SSL 协议更高,而且这个错误似乎甚至不涉及 BouncyCastle。

有没有人见过这样的错误,也许有任何想法或建议?我尝试将证书添加到cacerts. 如果在 Java 1.6 上运行,这可以正常工作,但不幸的是,运行它的生产系统暂时仍与 Java 1.4 相关联。

此外,如果我们在没有 SSL 的情况下连接到我们的开发系统,我们的 JAX-RPC 代码以及它所做的身份验证也可以正常工作。

[编辑 - 附加信息] 我现在可以看到,新版本的 BouncyCastle 发生了一些冲突,导致了这个问题。我尝试使用古老的(1.18)版本,但似乎没有收到 SSL 错误,而是从我们的应用程序中获取了一个错误,因为它需要更新的算法。

0 投票
1 回答
1303 浏览

java - 使用 JCA 和 JCE 加密和解密 Java 中的一段文本

我正在尝试使用 Java 中的 JCA 和 JCE 编写一个简单的应用程序来加密和解密一段文本。

到目前为止,加密部分有效,但在解密时它给了我以下异常:

这是我初始化两个密码 encCipher 和 decCipher 的部分。

我没有使用 Java Cryptography Architecture 的经验,我想知道如何修复该错误。

异常发生在 loadClients 的 decCipher.doFinal 行。

0 投票
3 回答
23104 浏览

java - Java 中带有 bouncycastle 的 PBKDF2

我正在尝试将密码安全地存储在数据库中,为此我选择存储使用 PBKDF2 函数生成的哈希值。我想使用充气城堡库来做到这一点,但我不知道为什么我不能通过使用 JCE 接口让它工作......问题是在 3 种不同模式下生成哈希:
1. 使用 PBKDF2WithHmacSHA1 密钥sun 提供的工厂
2. 直接使用充气城堡 api
3. 通过 JCE 使用充气城堡
会产生 2 个不同的值:一个与前两个相同,一个与第三个相同。

这是我的代码:

我知道 PBKDF2 是使用 HMAC SHA1 实现的,所以这就是为什么我在最后一种方法中选择从 bouncy castle java 文档中获取的“PBEWITHHMACSHA1”作为算法。

输出如下:

有任何想法吗?

0 投票
2 回答
379 浏览

java - 以编程方式发现java无限加密

我有一个 Java 应用程序,需要安装 JCE Unlimited Strength 策略文件才能生成证书。但是,目前,如果未安装文件,系统会静默失败,而不是抛出异常或其他东西。

是否有一种编程方式可以从应用程序中检查这些文件?谢谢。

0 投票
5 回答
31491 浏览

java - bouncycastle + JBoss AS7:JCE 无法验证提供者 BC

我在我的应用程序中使用 BouncyCastle 进行加密。当我独立运行它时,一切正常。但是,如果我将它放在 webapp 中并部署在 JBoss 服务器上,我会收到以下错误:

以下是导致此错误的部分代码:

和maven依赖:

你知道我该如何部署它吗?

0 投票
1 回答
1643 浏览

java - Java Blowfish 解密不返回原始字符串

我正在使用 Blowfish 实现一个简单的密码存储。一切都很好,直到我尝试了一些不同的密码/密钥组合并遇到了许多解密值仍然是垃圾的实例。

下面是一个演示该问题的独立类。我得到以下输出:

知道我需要做什么来保证它总是正确解密。

(在 JDK 1.6.0_26 中使用 jce.jar)

谢谢,

大卫

0 投票
1 回答
18294 浏览

java - Java X509 证书解析和验证

我正在尝试分几个步骤处理 X509 证书并遇到了几个问题。我是 JCE 的新手,所以我还没有完全了解所有内容。

我们希望能够基于不同的编码(PEM、DER 和 PCKS7)解析几个不同的 X509 证书。我已经使用 FireFox 从https://belgium.be以 PEM 和 PCKS7 格式导出了相同的证书(证书包括链)。我留下了问题不需要的几行

只要我使用 FileInputStream 而不是 PCKS7 的 BufferedInputStream,这段代码就可以正常工作,我认为这已经很奇怪了?但我可以忍受它。

下一步是验证这些证书链。1)检查所有证书是否都有有效日期(简单) 2)使用 OCSP 验证证书链(如果在证书中找不到 OCSP URL,则回退到 CRL)。这是我不完全确定如何处理的地方。

我正在使用 Sun JCE,但似乎没有太多可用的文档(在示例中)?

我首先做了一个简单的实现,只检查链而不通过 OCSP/CRL 检查。

这适用于我的 PEM 证书,但不适用于 PCKS7 证书(相同的证书,仅以其他格式导出)。 java.security.cert.CertPathValidatorException:路径不与任何信任锚链接。

我能看到的唯一区别是形成 CertPath 的顺序不一样?我无法弄清楚出了什么问题,所以我暂时离开了这个并继续使用 PEM 证书,但我们称之为问题 1 ;)

之后我想要实现的是 OCSP 检查。显然,如果我启用 OCSP 使用: Security.setProperty("ocsp.enable", "true"); 并设置 params.setRevocationEnabled(true); 它应该能够自行找到 OCSP URL,但似乎并非如此。标准实现应该做什么(问题2)? java.security.cert.CertPathValidatorException:必须指定 OCSP 响应程序的位置

通过这个,我找到了一种使用 AuthorityInfoAccessExtension 等从证书中检索 OCSP url 的方法。

但是在 ocsp.url 属性中手动设置 OCSP url 后,我得到一个java.security.cert.CertPathValidatorException: OCSP response error: UNAUTHORIZED

似乎我错过了很多必要的步骤,而很多在线参考资料都说设置ocsp.enable属性应该是您需要做的所有事情?

也许你们中的任何一个高手都不能指导我完成这个过程?告诉我我完全错了:)

如果没有找到 OCSP,下一步将实施 CRL 检查,如果有人可以指出任何示例或向我展示一些关于此的文档,我将不胜感激!

谢谢!

编辑: 由于它不是自己获取属性,我一直在尝试使用以下方法自己设置所有属性:

这给出了一个例外:java.security.cert.CertPathValidatorException:找不到响应者的证书(使用 OCSP 安全属性设置)。

0 投票
5 回答
67343 浏览

java - java.security.NoSuchAlgorithmException:找不到任何支持 AES/ECB/PKCS7PADDING 的提供程序

我试图使用 AES 算法加密数据。但是,发生了以下异常。

有人知道这个问题的解决方案吗?我的JDK版本是1.7。

0 投票
1 回答
1976 浏览

java - 导出使用无限制 JCE 策略(加密)的 Java 程序

我制作了一个使用 PBKDF2WithHmacSHA1 加密算法的 Java 应用程序,我需要下载 Unlimited JCE Policy jar。我将两个 JAR 文件放在应该存在的位置(我将它们放在我的 JDK 的 JRE 安全文件夹中),并正确命名,因此它可以在 Eclipse 中工作。

但是,当我导出它时,它仅在我从命令行运行 JAR 文件时才有效。我已经进行了一些调试,当我双击可执行/可运行 JAR 时,它属于加密/解密方法,因为它们会抛出异常。

所以,如果有人能告诉我为什么会这样以及更多,如何解决这个问题我会很感激,因为这非常重要!

提前致谢