У меня есть файл с тремя php: index.php
, где есть исходная строка, encrypt.php
где я буду шифровать исходную строку и, наконец, decrypt.php
, где я ее расшифрую, но проблема в том, когда я пытаюсь расшифровать ее, результат все равно зашифрован но не тот же шифр, который отличается. Может кто-нибудь помочь мне в расшифровке?AES - Зашифрованная строка не расшифровывается.
здесь картина я нажимаю Шифровать
здесь расшифрованный это проблема, на выходе должно быть "fwf2", но это разные
вот код для index.php
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="encrypt.php">
Original String <input type="text" name="text">
<input type="submit" name="encrypt" value="Encrypt" href="encrypt.php">
</form>
</body>
</html>
здесь является encrypt.php
<?php
$secret_key = "thisismykey12345";
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
if(isset($_POST['encrypt'])){
$string = $_POST['text'];
$encrypted_string = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $string, MCRYPT_MODE_CBC, $iv);
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="decrypt.php">
Encrypted String <input type="text" style="width:500px;" name="encrypted" value="<?php echo $encrypted_string; ?>">
<input type="submit" name="decrypt" value="Decrypt" href="decrypt.php">
</body>
</html>
вот decrypt.php
<?php
$secret_key = "thisismykey12345";
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
if(isset($_POST['decrypt'])){
$encrypted_string = $_POST['encrypted'];
$decrypted_string = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secret_key, $encrypted_string, MCRYPT_MODE_CBC, $iv);
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="encrypt.php">
Decrypted String <input type="text" name="decrypted" style="width:500px;" value="<?php echo $decrypted_string ?>">
</body>
</html>
Вы, кажется, обрабатываете зашифрованные данные, как будто это текст, его нет, его двоичные данные. Чтобы обрабатывать это как текст (т. Е. Передавать его в HTTP-запросах, необходимо его кодировать/декодировать, например Base64) –
FYI Вы должны избегать ECB & MCRYPT_RIJNDAEL_256 не AES 256 –
@Alex K. то какой тип алгоритма шифрования сэр? – nethken