150得票7回答
给定的最终数据块未正确填充

我正在尝试实现基于密码的加密算法,但是我遇到了这个异常: javax.crypto.BadPaddingException: 给定的最后一个块未正确补位 可能出了什么问题? 这是我的代码:public class PasswordCrypter { private Ke...

50得票5回答
如何列出可用的加密算法?

我正在使用 Cipher.getInstance(String algorithm) 获取Cipher实现。 我的理解是,我可以传递的可用算法名称取决于我的类路径中存在哪些库。 我想编写一个简单的程序,在不同的类路径下运行该程序,列出可用的Cipher算法名称。我需要调用什么方法来获取此列表?

35得票2回答
PBKDF2WithHmacSHA512与PBKDF2WithHmacSHA1比较

我正在开发一个Java身份验证子系统,规定将密码存储在数据库中时使用PBKDF2生成的哈希值,并且现在我正在尝试决定是否应该使用SHA1或SHA512作为PRF。我已经阅读了两者的规范,但它们对我来说都非常数学密集,难以理解。能否有一位更懂加密的人解释一下PBKDF2WithHmacSHA51...

17得票3回答
为什么我会收到“package javax.crypto does not exist”的错误提示?

当我使用javax.crypto.Mac编译一个类时,会出现以下错误信息: 包javax.crypto不存在 我可以通过将jre/lib/jce.jar包含在我的编译类路径中来修复它。 为什么默认的jdk类路径中没有jce.jar呢?jre/lib/rt.jar在类路径中,包括其...

15得票2回答
密钥和密钥规范(KeySpec)有什么区别?

在Java加密库中,有两种不同的密钥表示方式 - Key 和 KeySpec。文档暗示它们之间存在差异 - KeySpec是“透明”的(这意味着什么),但没有方法,而Key具有getEncoded方法。您应该使用KeyFactory在两者之间进行转换(确实有一个getKeySpec方法可供转换...

8得票1回答
iOS的CryptoKit在Java中的实现

我正在寻找 CryptoKit 的设置/参数,以便我可以在 iOS 应用程序和 Java 应用程序之间共享数据。流程如下: - 使用 CryptoKit 使用固定密钥和随机初始化向量(IV)加密文本。 - 在 Java 应用程序中使用标准的 javax 库来使用相同的固定密钥执行解密操作。随机...