Tag: pbkdf2

Java Cipher – PBE线程安全问题

我似乎有Cipher和/或PBEKeySpec的线程安全问题。 JDK:1.8.0_102,1.8.0_151和9.0.1 + 11 PBKDF2算法:PBKDF2WithHmacSHA1 密码算法:AES / CFB / NoPadding 关键算法:AES 我知道如果我们使用相同的实例,这些类不是安全的,但事实并非如此,我在每次解码时都会得到一个新的实例。 但即便如此,有时解码失败,也没有例外,只是意外的解码值。 我已经能够重现这个问题: @Test public void shouldBeThreadSafe() { final byte[] encoded = { 27, 26, 18, 88, 84, -87, -40, -91, 70, -74, 87, -21, -124, -114, -44, -24, 7, -7, 104, -26, 45, 96, 119, 45, -74, 51 }; final String expected = […]

PBEKeySpec对iterationCount和keyLength参数有何影响?

深入研究java加密和散列世界,我看到了PBEKeySpec类的构造函数示例,其中包含iterationCount和keyLength参数的各种值。 似乎没有什么能解释这些参数的影响或意义。 我假设keyLength是密钥的长度,因此密钥长度的32位加密值为32,但这种假设感觉不对。 我对iterationCount猜测是每个char加密的次数,也不再感受到对这个假设的喜爱。 欢迎链接到信息或解释。

PBKDF2WithHmacSHA512 Vs. PBKDF2WithHmacSHA1

我正在研究一个Java认证子系统,该子系统规定在DB中存储密码为PBKDF2生成的哈希,我现在正在尝试决定是否应该使用SHA1或SHA512作为PFR。 我仔细检查了两者的规格,但我们在数学上非常密集地跟随它。 有更好的加密理解的人可以解释PBKDF2WithHmacSHA512与PBKDF2WithHmacSHA512区别吗? 这是我正在尝试做的事情: private static final int HASH_BYTE_SIZE = 64; // 512 bits private static final int PBKDF2_ITERATIONS = 1000; // generate random salt SecureRandom random = new SecureRandom(); byte salt[] = new byte[SALT_BYTE_SIZE]; // use salt size at least as long as hash random.nextBytes(salt); // generate Hash PBEKeySpec spec = new PBEKeySpec(password, salt, […]