【发布时间】:2011-07-07 14:19:53
【问题描述】:
我正在为学校做作业,我们必须使用 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);
?>
我错过了什么吗?
【问题讨论】:
-
你试过图书馆而不用表格发送吗?如果没有,请先这样做。也许在通过表单发送之前和之后检查公钥和密文的值。
标签: php encryption