私はレガシーJavaシステムをPHPを実行するものに置き換えることを任されています。PKCS5暗号化のためにJAVAをPHPに置き換える
私は、Java暗号をPHPコードに置き換えるのにちょっとした努力をしています。
cipherAlgorythm = "PBEWithMD5AndDES";
cipherTransformation = "PBEWithMD5AndDES/CBC/PKCS5Padding";
PBEParameterSpec ps = new javax.crypto.spec.PBEParameterSpec(salt, iterations);
SecretKeyFactory kf = SecretKeyFactory.getInstance(cipherAlgorythm);
SecretKey key = kf.generateSecret(new javax.crypto.spec.PBEKeySpec(password.toCharArray()));
Cipher encryptCipher = Cipher.getInstance(cipherTransformation);
encryptCipher.init(Cipher.ENCRYPT_MODE, key, ps);
byte[] output = encryptCipher.doFinal("This is a test string".getBytes("UTF-8"));
は、キーのサイズがある
$hashed_key = pbkdf2('md5', $this->key, $this->salt, $this->reps , <GUESS 1>, TRUE);
$output = mcrypt_encrypt(MCRYPT_DES, $hashed_key, "This is a test string", MCRYPT_MODE_CBC, <GUESS 2>);
PBKDF2だからhere.
<GUESS 1>
からである私がやっているPHPでのJava
の根性ているように見えると<GUESS 2>
はIVであります。私はこれらを使って無駄に遊んだ。誰もそのような値の提案をしていますか?私が見る限り、暗号化自体は移植可能でなければなりませんが、Javaメソッドの中で何が起こっているのかは分かりません。
JavaがどこかでIVを作成しているように見えますが、どうやってどこか分かりません。
RELATED
Decrypt (with PHP) a Java encryption (PBEWithMD5AndDES)