public String deciphering(String text,String key) {
String[] parts = text.split(":");
byte[] iv = Base64.getDecoder().decode(parts[0]);
byte[] encryptedText = Base64.getDecoder().decode(parts[1]);
Cipher cipher = Cipher.getInstance(ALGORITHM);
GCMParameterSpec spec = new GCMParameterSpec(TAG_LENGTH_BIT, iv);
cipher.init(Cipher.DECRYPT_MODE, getSecretKey(key), spec);
byte[] decryptedText = cipher.doFinal(encryptedText);
return new String(decryptedText);
}
private SecretKey getSecretKey(String key) {
return new SecretKeySpec(key.getBytes(), ALGORITHM_TYPE);
}
ALGORITHM = AES/GCM/NoPadding
ALGORITHM_TYPE = AES
Спасибо за заранее!
Франк.
Вот моя текущая функция PHP, которая всегда возвращает «не ок"

function deciphering($text, $key) {
list($ivBase64, $encryptedTextBase64) = explode(":", $text);
$iv = base64_decode($ivBase64);
$encryptedText = base64_decode($encryptedTextBase64);
$cipher = 'aes-128-gcm';
if (openssl_decrypt($encryptedText, $cipher, $key, OPENSSL_RAW_DATA, $iv)) {
echo "ok";
} else {
echo "not ok";
}
}
deciphering($text, $key);
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-function