У меня проблемы с попыткой "перевести" некоторый код из JAVA в PHP.
Я уже перепробовал много функций, но у меня ничего не получается, чтобы получить одинаковые результаты с обеих сторон.
JAVA CODE
public static String encrypt(String text, String key, String charset) throws Exception {
byte[] keyBytes = Base64.decodeBase64(key);
SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, ALGORITHM);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] textBytes = text.getBytes(charset);
byte[] bytes = cipher.doFinal(textBytes);
return new String(Base64.encodeBase64(bytes), charset);
}
КЛЮЧЕВОЙ ПАРАМЕТР -> "NWelNxflgZ + rjP0bo2gi2Q =="
ТЕКСТОВЫЙ ПАРАМЕТР -> «Я тест»
ПАРАМЕТР CHARSET -> "UTF-8"
ПОСТОЯННЫЙ АЛГОРИТМ -> AES
РЕЗУЛЬТАТ -> "13vh3qeuc + kN7NvcKwM6pw =="
PHP-код
function encryptAES($text, $key)
{
$key = strtohex($key);
$encrypt = openssl_encrypt($text, 'aes128', $key, OPENSSL_RAW_DATA);
if (!$encrypt) {
throw new Exception('AES encryption error');
}
return base64_encode($encrypt);
}
function strtohex($x)
{
$s='';
foreach (str_split($x) as $c) $s.=sprintf("%02X",ord($c));
return($s);
}
КЛЮЧЕВОЙ ПАРАМЕТР -> "NWelNxflgZ + rjP0bo2gi2Q =="
ПАРАМЕТР ТЕКСТА -> «Я тест»
РЕЗУЛЬТАТ -> "Vs5pwAC7PK0fQUQQ + PMhKw =="
Кто-нибудь может помочь, пожалуйста, объясните мне, почему не работает мой код?
Большое спасибо, ребята.