【发布时间】:2012-10-06 21:49:42
【问题描述】:
我有以下来自用于加密的 c++ 代码的 sn-p:
EVP_CIPHER_CTX ctx;
const EVP_CIPHER * cipher = EVP_des_ede3_cbc();
unsigned char iv[EVP_MAX_IV_LENGTH];
unsigned char key[EVP_MAX_KEY_LENGTH];
String seed;
_config->get_value("crypto_seed", &seed); // uses the seed value from pimp config.
if (seed.is_empty())
{
return false;
}
EVP_BytesToKey(cipher, EVP_sha1(),
(unsigned char *) 0, // no salt
reinterpret_cast<unsigned char *>(const_cast<char *>(seed.chars())), seed.length(),
1, // hash passphrase just once.
key, iv);
EVP_CIPHER_CTX_init(&ctx);
EVP_CipherInit_ex(&ctx, cipher, (ENGINE *) 0, key,
iv,
1); // encrypt
java中c++加密的等价物是什么?
我看到有des 算法,然后我看到sha1。
这与 openssl 加密有关。但不确定什么是等价的。本质上,我想要与 c++ 代码生成的输出相同。
我在问什么是 EVP_CIPHER_CTX 的等价物,或者这里使用的加密名称是什么,所以我可以从那里获取它。
编辑:不要求任何人将代码转换为 java,只要求相应的包或类执行相同的操作。
【问题讨论】:
-
你问的是如何将上面的c++转换成java?或者这是一个不同的问题?
-
我在问什么是
EVP_CIPHER_CTX的等价物,或者这里使用的加密名称是什么,所以我可以从那里获取。 -
@DarthVader - 我有那个愚蠢的hammer badge and I can't opt-out of it。这意味着我不能在不结束问题的情况下引用潜在的重复项。如果您反对,请告诉我。
-
OpenSSL 1.1.0c changed the digest algorithm 用于一些内部组件。以前使用MD5,1.1.0改用SHA256。请注意,
EVP_BytesToKey和openssl enc等命令中的更改不会影响您。
标签: java c++ encryption openssl