问题标签 [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.
java - 我将如何使用 Maven 安装 JCE Unlimited Strength Policy 文件?
我的一些代码需要 JCE 无限强度策略文件。我想将此依赖项添加到 Maven Pom 文件中,这样我团队中的其他开发人员就不必分别将其应用到他们的系统中。
我意识到最终部署到的系统需要手动安装 JCE 文件。这只是一个开发解决方案。
我在想我们会将策略文件添加到我们的存储库中,并且 maven 将能够处理安装,但我很惊讶我找不到其他人这样做(以及关于它的博客。)。
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 的密钥。我知道这很糟糕,并且会在我找到生成密钥的好方法时对其进行更改。
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
. 有任何想法吗?
java - InvalidKeyException 非法密钥大小
我有一个测试在我的开发 MacBook Pro 上运行良好,但无法在持续集成 TeamCity 服务器中运行。
错误如下:
开发盒和 TeamCity 都使用 Java 1.6,我使用 BouncyCastle 库来满足特殊 AES 加密的需要。
代码如下:
更新
看起来根据选择的答案,我必须修改我的 TeamCity 安装上的某些内容,它可能会影响某些用户安装 - 所以这不是一个好的选择,我必须切换到另一个加密库来不受限制地做到这一点。因此,充气城堡可能会有所帮助。
更新 2
我实际上改用 BouncyCastle 来避免这个限制。请注意,这仅在您直接使用自己的 BC 类而不是 BC 提供程序时才有效。
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 实现——证明是我制作的自定义单元测试。
encryption - 用 PHP 加密和用 Java 解密
我必须编写一个程序来使用 JAVA 解密消息。消息使用 PHP 中实现的 Triple DES / ECB 进行加密。我在算法、模式和填充模式上尝试了一些不同的设置。我没有得到正确的结果。什么不见了?
这是加密消息的 PHP 程序:
下面是解密消息的java程序:(我使用的是BouncyCastleProvider)
java - 我们如何将字符串从 PEM 转换为 DER 格式
以以下格式发送字符串:
我如何从这个字符串构造一个 PublicKey 对象?已尝试以下删除页眉和页脚和base64解码缓冲区
这会因为无效的密钥格式而失败,或者会出现以下错误
密钥正在通过 openSSL 的 API 生成PEM_write_bio_RSAPublicKey(bio, rsa);
openssl - 加载从 java thro openSSL API 生成的 PublicKey
应该使用 JCE 实施解决方案我有一个使用 KeyPairGenerator 生成的公钥字符串。
如何使用 PEM_read_bio_RSAPublicKey 在 openSSL Api 调用中加载它?或者这将对 x509 规范进行编码我们如何删除和生成与 openssl api 调用兼容的公共?
java - 如何在 J9 vm 上使用已安装提供程序的加密算法?
您好我正在尝试在 J9 上使用 RSA。该算法由“J9JCE”提供程序提供,它是一个已安装的扩展(我列出了所有现有的提供程序和算法并找到了它们),但我得到的例外是:
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 字符串中的某些字符是相同的)