问题标签 [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 投票
3 回答
17336 浏览

java - 我将如何使用 Maven 安装 JCE Unlimited Strength Policy 文件?

我的一些代码需要 JCE 无限强度策略文件。我想将此依赖项添加到 Maven Pom 文件中,这样我团队中的其他开发人员就不必分别将其应用到他们的系统中。

我意识到最终部署到的系统需要手动安装 JCE 文件。这只是一个开发解决方案。

我在想我们会将策略文件添加到我们的存储库中,并且 maven 将能够处理安装,但我很惊讶我找不到其他人这样做(以及关于它的博客。)。

0 投票
1 回答
2686 浏览

java - 在 java 5 中使用 AES 进行基于密码的加密(仅限 JCE)

我想使用 AES(192 位或 256 位),但我坚持如何从用户提供的密码生成密钥。

我已经完成了这个线程,并且能够在 Java 6 中运行该程序。但是,我需要在 Java 5 中运行相同的程序,并且 PBKDF2WithHmacSHA1 的 SecretKeyFactory 在 JDK 5 中不可用。

因此,本质上,我需要根据用户密码为 SecretKey 生成 192 位或 256 位,并且我希望在 java 5 中使用一种安全的方式来执行此操作。

帮助表示赞赏!

编辑#1 为了避免卡住,我现在使用 MD5 中的 128 位(用户输入的密码 + 固定盐)作为 AES 的密钥。我知道这很糟糕,并且会在我找到生成密钥的好方法时对其进行更改。

0 投票
5 回答
137010 浏览

java - 为什么 java.security.NoSuchProviderException 没有这样的提供者:BC?

jar (bcprov-jdk16-145.jar) 已添加到项目中,Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider())已添加到类中,并且BouncyCastleProvider.PROVIDER_NAME确实返回“BC”但 AesFileIo.writeFile() 仍然会抛出java.security.NoSuchProviderException No such provider: BC. 有任何想法吗?

0 投票
5 回答
85167 浏览

java - InvalidKeyException 非法密钥大小

我有一个测试在我的开发 MacBook Pro 上运行良好,但无法在持续集成 TeamCity 服务器中运行。

错误如下:

开发盒和 TeamCity 都使用 Java 1.6,我使用 BouncyCastle 库来满足特殊 AES 加密的需要。

代码如下:

更新

看起来根据选择的答案,我必须修改我的 TeamCity 安装上的某些内容,它可能会影响某些用户安装 - 所以这不是一个好的选择,我必须切换到另一个加密库来不受限制地做到这一点。因此,充气城堡可能会有所帮助。

更新 2

我实际上改用 BouncyCastle 来避免这个限制。请注意,这仅在您直接使用自己的 BC 类而不是 BC 提供程序时才有效。

0 投票
3 回答
2328 浏览

java - 使用第三方 Java 库重新实现 AES 加密,不受美国法律限制

我已经使用标准 Java 工具和针对特定 AES 算法的 BouncyCastle 提供程序使用某些特定于任务的参数实现了 AES 加密。

这是代码:

在某些环境中,此代码需要特殊的策略文件。请参阅相关问题:InvalidKeyException Illegal key size

我的目标是使用第三方库重新实现它,理想情况下我会使用已经用作提供者的充气城堡。该库不应限制标准 java 策略文件。换句话说,不应该有任何限制。

请在您的回答中建议如何使用 BouncyCastle 或其他可以不受限制地工作的第三方库重新实现它。理想情况下,我会看到代码:-)

非常感谢您的阅读!

延迟后,我现在很高兴发布解决方案。希望有人可以从中受益,因为 Bouncy Castle 文档中没有很多示例 :-)

}

顺便说一句,我发现 Java API 和 Bouncy Castle API 之间有两个区别: 1. Bouncy Castle 使用对象组合来创建所需的密码。而 Java API 使用字符串来识别所需的密码。2. BC 加密代码略大,而 Java API 代码更紧凑。

该解决方案完全替代了原始 Java API 实现——证明是我制作的自定义单元测试。

0 投票
1 回答
1755 浏览

encryption - 用 PHP 加密和用 Java 解密

我必须编写一个程序来使用 JAVA 解密消息。消息使用 PHP 中实现的 Triple DES / ECB 进行加密。我在算法、模式和填充模式上尝试了一些不同的设置。我没有得到正确的结果。什么不见​​了?

这是加密消息的 PHP 程序:

下面是解密消息的java程序:(我使用的是BouncyCastleProvider)

0 投票
3 回答
24930 浏览

java - 我们如何将字符串从 PEM 转换为 DER 格式

以以下格式发送字符串:

我如何从这个字符串构造一个 PublicKey 对象?已尝试以下删除页眉和页脚和base64解码缓冲区

这会因为无效的密钥格式而失败,或者会出现以下错误

密钥正在通过 openSSL 的 API 生成PEM_write_bio_RSAPublicKey(bio, rsa);

0 投票
1 回答
2444 浏览

openssl - 加载从 java thro openSSL API 生成的 PublicKey

应该使用 JCE 实施解决方案我有一个使用 KeyPairGenerator 生成的公钥字符串。

如何使用 PEM_read_bio_RSAPublicKey 在 openSSL Api 调用中加载它?或者这将对 x509 规范进行编码我们如何删除和生成与 openssl api 调用兼容的公共?

0 投票
1 回答
262 浏览

java - 如何在 J9 vm 上使用已安装提供程序的加密算法?

您好我正在尝试在 J9 上使用 RSA。该算法由“J9JCE”提供程序提供,它是一个已安装的扩展(我列出了所有现有的提供程序和算法并找到了它们),但我得到的例外是:

0 投票
3 回答
20863 浏览

java - 使用 JCE 的 3DES/DES 加密 - 生成可接受的密钥

我正在开发一个需要在 Java 中进行 3DES 加密的项目。问题是我已经(并将继续)提供了一个 128 位十六进制密钥,例如“0123456789ABCDEF0123456789ABCDEF”。转换为字节没有问题。然而,问题是Java Cryptographic Extensions API 会卡在这个密钥上,说它是无效的。我收集到每个字节的 MSB 只是一个奇偶校验位,所以 JCE 希望我删除那些(或者我认为)。然而,在 .NET 中,我可以指定提供的密钥,它会安静地处理加密/解密,没有任何抱怨。

有什么方法可以从我提供的密钥类型中生成 JCE 期望的密钥类型?

我发现 JCE 允许您为 DES 加密指定一个 8 字节的密钥,因此我尝试使用提供的一半密钥将 3DES 实现为 DES EDE。但是,我仍然得到与 .NET 不一致的结果。

这是Java代码:

这是.NET代码:

两者都产生不同的输出(Base64 字符串中的某些字符是相同的)