javax.crypto.Cipher의 "DES/CBC/PKCS5Padding"에 의해 암호화 된 암호를 해독하고 싶습니다. 비밀번호를 해독하려면 OpenSSL을 사용해야합니다. OpenSSL의 어떤 API를 사용해야합니까?Java DES/CBC/PKCS5Padding과 같은 OpenSSL의 API는 무엇입니까?
DES3 용 API는 DES_ede3_cbc_encrypt
이고 알고 싶습니다. DES를 알고 싶습니다.
javax.crypto.Cipher의 "DES/CBC/PKCS5Padding"에 의해 암호화 된 암호를 해독하고 싶습니다. 비밀번호를 해독하려면 OpenSSL을 사용해야합니다. OpenSSL의 어떤 API를 사용해야합니까?Java DES/CBC/PKCS5Padding과 같은 OpenSSL의 API는 무엇입니까?
DES3 용 API는 DES_ede3_cbc_encrypt
이고 알고 싶습니다. DES를 알고 싶습니다.
EVP_*
함수도 사용해야합니다. DES_ede3_cbc_encrypt
(및 친구들)과 같은 기능은 아닙니다. OpenSSL wiki의 EVP Symmetric Encryption and Decryption을 참조하십시오.
DES 기호에 대한 질문에 대답하려면 EVP_des_XXX
을 사용해야합니다. 여기서 XXX
은 관심있는 모드입니다. 나는 당신이 EVP_des_cbc
을 원하는 것 같아요.
OpenSSL 및의 FIPS 버전으로 CentOS 컴퓨터에서 작업하는 경우 FIPS 모드가 활성화되어 있으면 DES 또는 2 키 3DES 알고리즘에 액세스 할 수 없습니다 (3 키 3DES가 있어야 함). 유효한).
$ cd openssl
$ grep EVP_des include/openssl/evp.h
const EVP_CIPHER *EVP_des_ecb(void);
const EVP_CIPHER *EVP_des_ede(void);
const EVP_CIPHER *EVP_des_ede3(void);
const EVP_CIPHER *EVP_des_ede_ecb(void);
const EVP_CIPHER *EVP_des_ede3_ecb(void);
const EVP_CIPHER *EVP_des_cfb64(void);
const EVP_CIPHER *EVP_des_cfb1(void);
const EVP_CIPHER *EVP_des_cfb8(void);
const EVP_CIPHER *EVP_des_ede_cfb64(void);
const EVP_CIPHER *EVP_des_ede3_cfb64(void);
const EVP_CIPHER *EVP_des_ede3_cfb1(void);
const EVP_CIPHER *EVP_des_ede3_cfb8(void);
const EVP_CIPHER *EVP_des_ofb(void);
const EVP_CIPHER *EVP_des_ede_ofb(void);
const EVP_CIPHER *EVP_des_ede3_ofb(void);
const EVP_CIPHER *EVP_des_cbc(void);
const EVP_CIPHER *EVP_des_ede_cbc(void);
const EVP_CIPHER *EVP_des_ede3_cbc(void);
const EVP_CIPHER *EVP_desx_cbc(void);
const EVP_CIPHER *EVP_des_ede3_wrap(void);
는 여기 멀리에는 OpenSSL 및 Java 상호 운용성에 대한 cribbed 계속 몇 가지에 대한 참조입니다. 대개 EVP_BytesToKey
은 몇 가지 문제를 일으 킵니다.
나는'DES_ncbc_encrypt'를 사용하고 자바의 DES/CBC/PKCS5Padding에 의해 암호화 된 암호를 해독에 잘 작동합니다. – Edure