即时为学校做作业,我们必须使用rsa来加密并将数据(例如密码)发送到服务器以进行用户身份验证我正在使用php类来进行 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>";
?>
但是当我将加密代码发送到另一个页面并尝试解密时,我会收到错误
警告:unpack()[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);
?>
我错过了什么吗?
答案 0 :(得分:3)