Tôi có một ứng dụng có tệp java và PHP. Các tệp java gửi nội dung tới tệp PHP và tệp này gửi phản hồi tới tệp java, bằng mọi thứ HTTP. Tôi có phản hồi với định dạng JSON.Mã hóa nội dung bằng php và java
Tôi muốn mã hóa thông tin và giải mã nó ở phía bên kia, java->php
và php->java
(điều này là quan trọng nhất) nhưng tôi không biết cách thực hiện.
Edit: tôi đang cố gắng Blowfish, đây là mã của tôi trong PHP (crypt dữ liệu và gửi cho Java) và Java (lấy dữ liệu và giải mã nó)
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"));
Kết quả khi tôi thực hiện là:
Input length must be multiple of 8 when encrypting with padded cipher
hoặc đôi khi
Given final block not properly padded
Hoàn toàn vô nghĩa. Sử dụng SSL để thay thế. –