繁体   English   中英

RSA加密和解密

[英]RSA encryption and decryption

我正在为学校做作业,我们必须使用 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 个,在 C:\wamp\www\RSA\Crypt\RSA.php 中有 3 个在第 972 行

警告:extract() 期望参数 1 是数组,boolean 在 C:\wamp\www\RSA\Crypt\RSA.php 中给出在第 97 行

注意:未定义变量:第 973 行 C:\wamp\www\RSA\Crypt\RSA.php 中的长度

警告:unpack() [function.unpack]:类型 N:输入不足,需要 4,在 C:\wamp\www\RSA\Crypt\RSA.php 中为 974

警告:extract() 期望参数 1 是数组,boolean 在 C:\wamp\www\RSA\Crypt\RSA.php 中给出的第 97 行

注意:未定义变量:第 975 行 C:\wamp\www\RSA\Crypt\RSA.php 中的长度

这是我的解密页面:

    <?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. 用公钥加密,用私钥解密
  2. Base64 在发布之前对密码进行编码,base64 在解密之前对其进行解码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM