я делаю задание для школы, и мы должны использовать rsa для шифрования и отправки данных (например, пароля) на сервер для аутентификации пользователя. Я использую класс php для thet phpseclib, чистой реализации PHP RSA!
Я могу зашифровать текст
<?php
include('Math/BigInteger.php');
include('Crypt/Hash.php');
include('Crypt/RSA.php');
ini_set('max_execution_time', 0);
$rsa = new Crypt_RSA();
extract($rsa->createKey());
$plaintext = 'terrafrost';
$rsa->loadKey($privatekey);
$ciphertext = $rsa->encrypt($plaintext);
echo"<form action=\"dec.php\" method=\"post\"><input name=\"ciphertext\" type=\"text\" value=\"".$ciphertext."\"/>";
echo"<input name=\"publickey\" type=\"text\" value=\"".$publickey."\"/>";
echo"<input type=\"submit\" name=\"button\" id=\"button\" value=\"Submit\" /></form>";
?>
, но когда я отправляю зашифрованный код на другую страницу и пытаюсь расшифровать его, я получаю ошибки
Предупреждение: распаковать() [function.unpack]: Тип N: недостаточно ввода, нужно 4, иметь 3 в C: \ wamp \ www \ RSA \ Crypt \ RSA.php в строке 972
Предупреждение: extract () ожидаетпараметр 1 должен быть массивом, логическое значение указывается в C: \ wamp \ www \ RSA \ Crypt \ RSA.php в строке 972
Примечание: неопределенная переменная: длина в C: \ wamp \ www \ RSA \ Crypt \RSA.php в строке 973
Предупреждение: unpack () [function.unpack]: Тип N: недостаточно ввода, нужно 4, иметь 0 в C: \ wamp \ www \ RSA \ Crypt \ RSA.phpв строке 974
Предупреждение: extract () ожидает, что параметром 1 будет массив, логическое значение указывается в C: \ wamp \ www \ RSA \ Crypt \ RSA.php в строке 974
Примечание: не определенопеременная: длина в C: \ wamp \ www \ RSA \ Crypt \ RSA.php в строке 975
вот моя страница расшифровки:
<?php
include('Math/BigInteger.php');
include('Crypt/Hash.php');
include('Crypt/RSA.php');
ini_set('max_execution_time', 0);
$rsa = new Crypt_RSA();
$publickey=$_POST['publickey'];
$ciphertext = $_POST['ciphertext'];
$rsa->loadKey($publickey);
echo $rsa->decrypt($ciphertext);
?>
я что-то упустил?