- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我以前从未使用过 C++,但现在我需要将此功能迁移到 C++:
public static byte[] getSafeKey(String key, byte[] initVector) {
KeySpec keySpec = new PBEKeySpec(key.toCharArray(), initVector,
ITERATION_COUNT, KEY_LENGTH);
SecretKeyFactory keyFactory = null;
try {
keyFactory = SecretKeyFactory
.getInstance("PBKDF2WithHmacSHA1");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte[] keyBytes = new byte[0];
try {
keyBytes = keyFactory.generateSecret(keySpec).getEncoded();
} catch (InvalidKeySpecException e) {
e.printStackTrace();
}
SecretKey skey = new SecretKeySpec(keyBytes, "AES");
return skey.getEncoded();
}
到目前为止,我找到了一个 PBEKeySpec 模拟:http://beecrypt.sourceforge.net/doxygen/c++/classbeecrypt_1_1crypto_1_1spec_1_1PBEKeySpec.html
但即便如此,我也不知道如何处理 keyFactory 以及更远的地方。
有没有简单的C++写法?
最佳答案
对于托管代码,您可以使用错误命名的 Rfc2898DeriveBytes . RFC 2898定义 PKCS#5:基于密码的加密。此版本包括 PBKDF2 密码哈希(如果需要,或基于密码的 key 派生函数)。
对于非托管代码,似乎有 an implementation of PBKDF2 in Crypto++ .请注意,Java 版本中的散列也在 HMAC 构造中使用。 Botan也是一种选择。
请注意,Java 版本直接使用密码的 char
值的最低 8 位。因此它很可能与非 ASCII 字符的其他实现不兼容。
关于java - PBEKeySpec C++ 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684249/
我想知道当我使用 PBEKeySpec 创建安全密码时如何或是否应该测试 .clearPassword()?我可以以某种方式查看 .clearPassword() 之后我的内部副本是否仍然存在吗? 最
我以前从未使用过 C++,但现在我需要将此功能迁移到 C++: public static byte[] getSafeKey(String key, byte[] initVector) {
我正在使用以下代码,以便为提供的密码生成哈希值: public static SecretKey generateKey( String passphraseOrPin ) throws NoSuc
使用相同的 IV、key、iteration 和 salt 作为输入,每次生成的 PBEKeySpec 是否都相同?即: SecretKeyFactory factory = SecretKeyFac
我想知道是否有办法将 PBEKeySpec 与字节数组参数一起使用。 请找到以下文档的链接: http://docs.oracle.com/javase/1.7/docs/api/javax/cryp
http://docs.oracle.com/javase/7/docs/api/javax/crypto/spec/PBEKeySpec.html 盐、迭代次数和 key 长度是可选参数。如果未指定
如果我使用安全的随 secret 码作为 PBEKeySpec 的输入,它是否会增加迭代多次并添加盐的值(value)?它不会因此而变得更加随机,对吗? 最佳答案 如果密码是随机字节序列且长度正确,则
深入研究 java 加密和散列世界,我看到了 PBEKeySpec 类的构造函数示例,该类具有 iterationCount 和 keyLength 的各种值> 参数。似乎没有什么可以解释这些参数的影
我目前正在尝试加密和解密 java 字符串。为此,我编写了以下 2 种方法: public static String AESencryptString(String clearStr) throws
如果有人能给我一些指点:我有一个由 PBEKeySpec 生成的 KeySpec: KeySpec spec = new PBEKeySpec(password.toCharArray(), "SAL
这是我的java代码。现在我想在 Objective-C 中实现相同的功能。 int dkLen = 16; int rounds = 1000; PBEKeySpec keySpec = new P
我正在开发一些可互操作的代码,用于在 Java 和 Node.js 之间加密/解密字符串,并设法让 Node.js 解密 Java 加密的内容,这是成功解密的最后一部分: key 。 要在 Java
我是一名优秀的程序员,十分优秀!