@ 2017-07-10T11:11:54Z <?php
$algo = 'aes-256-gcm';
$iv = random_bytes(openssl_cipher_iv_length($algo));
echo(openssl_cipher_iv_length($algo));
echo("\n");
$key = random_bytes(32); // 256 bit
//$data = random_bytes(1024); // 1 Kb of random data
$data = "well hello there with insane length and soooooooooooooooooooooooooooooooooooooooo much data in it. Bigger better stronger D:";
$ciphertext = openssl_encrypt(
$data,
$algo,
$key,
OPENSSL_RAW_DATA,
$iv,
$tag
);
// Change 1 bit in ciphertext
// $i = rand(0, mb_strlen($ciphertext, '8bit') - 1);
// $ciphertext[$i] = $ciphertext[$i] ^ chr(1);
echo(base64_encode($ciphertext));
echo("\n");
echo(base64_encode($tag));
$i = rand(0, mb_strlen($tag, '8bit') - 1);
//$tag[$i] = $tag[$i] ^ chr(1);
echo("\n");
echo(base64_encode($tag));
$decrypt = openssl_decrypt(
$ciphertext,
$algo,
$key,
OPENSSL_RAW_DATA,
$iv,
$tag
);
if (false === $decrypt) {
throw new Exception(sprintf(
"OpenSSL error: %s", openssl_error_string()
));
}
printf ("Decryption %s\n", $data === $decrypt ? 'Ok' : 'Failed');
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.1.7 12
QhYJwW74b77ZnILEDcS8aIGVxT0ARRJ+cWgbg9h3QSWvf3fr63BuebcpSBGAG1SUTPc2pO9TvnmLvSvZ8S15FrN4PLjGgzjXGAK2xtjSta6cInfqNJVlHflNBWYK6HQVRoW6OU2Sj60lKe8DIMsH2raGkoT6uwkc84FbjA==
RtjHG1xSe8h6u0OjqXuh9A==
RtjHG1xSe8h6u0OjqXuh9A==Decryption Ok
preferences:dark mode live preview
59 ms | 401 KiB | 6 Q