2017-09-27 15 views
1

javax.crypto.Cipherの "DES/CBC/PKCS5Padding"によって暗号化されたパスワードを復号化したいと思います。私はOpenSSLを使ってパスワードを解読する必要があります。 OpenSSLのどのAPIを使うべきですか?Java DES/CBC/PKCS5PaddingのようなOpenSSLのAPIとは何ですか?

私はDES3のAPIがDES_ede3_cbc_encryptであり、DESを知りたいと思っています。

答えて

1

EVP_*機能も使用する必要があります。 DES_ede3_cbc_encrypt(およびお友達)のような機能ではありません。 OpenSSL wikiのEVP Symmetric Encryption and Decryptionを参照してください。

DES記号に関するご質問にお答えするには、EVP_des_XXXXXXは興味のあるモードです)を使用する必要があります。私はあなたが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); 

Iは、OpenSSLとJavaの相互運用のために離れてcribbed保ついくつかの参照です。通常EVP_BytesToKeyは問題を引き起こします。

+0

私は 'DES_ncbc_encrypt'を使用し、そしてそれは、JavaのDES/CBC/PKCS5Paddingによって暗号化されたパスワードを解読するには適しています。 – Edure

関連する問題