Java および PHP ファイルを含むアプリがあります。Java ファイルは PHP ファイルにコンテンツを送信し、これはすべて HTTP によって Java ファイルに応答を送信します。JSON形式の応答があります。
情報を暗号化し、反対側でデコードしたいのですがjava->php
(php->java
これが最も重要です)、その方法がわかりません。
編集:私はBLOWFISHを試しています.PHP(データを暗号化してJavaに送信する)とJava(データを取得してデコードする)の私のコードは次のとおりです。
PHP
$key = "this is the key";
$crypttext = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $result_json, MCRYPT_MODE_ECB);
echo($crypttext);
ジャワ
public String decryptBlowfish(String to_decrypt, String strkey) {
System.out.println(to_decrypt);
try {
SecretKeySpec key = new SecretKeySpec(strkey.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decrypted = cipher.doFinal(to_decrypt.getBytes());
return new String(decrypted);
} catch (Exception e) {
System.out.println(e.getMessage());
;
return null;
}
}
System.out.println(decryptBlowfish(result, "this is the key"));
私が実行したときの結果は次のとおりです。
Input length must be multiple of 8 when encrypting with padded cipher
または時々
Given final block not properly padded