我有一个带有 java 和 PHP 文件的应用程序。java 文件将内容发送到 PHP 文件,而这个将响应发送到 java 文件,通过 HTTP 一切。我有 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);
JAVA
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