RSA шифрование и дешифрование - PullRequest
1 голос
/ 07 июля 2011

я делаю задание для школы, и мы должны использовать 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);

?>

я что-то упустил?

1 Ответ

3 голосов
/ 08 июля 2011
  1. Шифрование с открытым ключом, дешифрование с помощью закрытого ключа
  2. Base64 кодирует шифр перед отправкой, base64 декодирует его перед расшифровкой
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...