【发布时间】:2016-06-07 16:06:57
【问题描述】:
我以前从未使用过 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++ 编写的简单方法?
【问题讨论】:
-
我删除了 Crypto++ 标签。使用该技术时应添加标签;而不是“我应该做什么,我应该怎么做?”问题。
-
是的,当然。不会再这样做了。实际上我在项目中使用它,这就是我添加标签的原因。
标签: java c++ cryptography aes