我正在编写一段解密java中数据的代码,使用[poco lib](http://pocoproject.org/docs/)在一些C ++代码中加密。
C ++代码类似如下所示:
std::string password = "secret";
std::string salt("asdff8723lasdf(**923412");
CipherKey key("aes-256", password, salt);
迭代次数也为2k。
DEFAULT_ITERATION_COUNT = 2000
如何在java中创建相同的密钥来解密数据? 什么是java中的等效代码?
我正在尝试这样的事情,
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
char[] passowrd = "secret".toCharArray();
byte[] salt = "asdff8723lasdf(**923412".getBytes();
KeySpec spec = new PBEKeySpec(passowrd,salt, 2000);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
但是,它不起作用。没有给我这样的算法发现异常。我应该使用哪种算法?我需要知道更多要解密的内容吗?
更新
我已经按照user2504380