Java-эквивалент шифрования C ++ [дубликат]
На этот вопрос уже есть ответ здесь:
Как расшифровать файл в Java, зашифрованный командой openssl с помощью AES? 3 ответаУ меня есть следующий фрагмент кода C ++, который используется для шифрования:
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
Что является эквивалентом шифрования C ++ в Java?
Я вижу, что естьdes
алгоритм, тогда я вижуsha1
.
Это связано с шифрованием openssl. Но не уверен, что эквивалентно. по сути, я хотел бы получить такой же вывод, как генерирует код C ++.
я спрашиваю, что эквивалентноEVP_CIPHER_CTX
или как называется шифрование, используемое здесь, чтобы я мог взять его оттуда.
РЕДАКТИРОВАТЬ: не просить никого преобразовать код в Java, просто попросить соответствующий пакет или класс, который будет делать то же самое.