php - 我的数据库无法使用 RSA 加密

标签 php mysql encryption rsa phpseclib

在将数据插入 mySQL 数据库之前,我尝试使用 phpseclib 加密 PII。 我似乎可以加密一些东西,并将其放入数据库,但是当我记忆起来时,我无法解密它。

知道我做错了什么吗?

    <?php
$con=mysqli_connect("localhost","XXXXXXX","XXXXXXX","XXXXXXX");
include('phpseclib/Crypt/RSA.php');
$secret= 'Hello World';
$pubkey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCunhp5XEEptnE/+jhfdTF1ryjr 756tUJs26RTKgVa/6isdO+SzTdHRvsOqle8Ze58Y9Qj8goVGkcsxrSHr+nEWcN6O oQK+e1Inux5PDwVOE9kiWbjDN4hs41+d6ZgdN6l8h4bhPeAVgQoS2F4a2TKMyLY5 dyzwj7RK98mLwbfaNwIDAQAB";
$rsa = new Crypt_RSA();
$rsa->loadkey($pubkey);
$name = "apersonalname";
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt($secret);
$storeme = base64_encode($ciphertext);
echo $storeme;
mysqli_query($con, "INSERT INTO `enctest`(`Name`, `SecretMessage`) VALUES ('$name','$storeme')");
$findsecret = mysqli_query($con, "SELECT * FROM `enctest` WHERE `Name`='$name'");
while($row = mysqli_fetch_array($findsecret))
  {
      $sm = $row['SecretMessage'];
  };

$return = base64_decode($sm);
$rsa = new Crypt_RSA();
$rsa->loadKey('MIICXQIBAAKBgQCunhp5XEEptnE/+jhfdTF1ryjr756tUJs26RTKgVa/6isdO+Sz TdHRvsOqle8Ze58Y9Qj8goVGkcsxrSHr+nEWcN6OoQK+e1Inux5PDwVOE9kiWbjD N4hs41+d6ZgdN6l8h4bhPeAVgQoS2F4a2TKMyLY5dyzwj7RK98mLwbfaNwIDAQAB AoGBAJBl1/ix7IUFBOPmFIYD0LHD9nAdCDfEZ4Zh+rp3eHhdueeD5tzLpo3vVbkU IdQN4YPu5c6CVJoF6GUdCecthCOvQtHtIZq3Gc3Bg6e7lnc3TXek1rBvIooexwj7 wqi+kHOxDZIo271CHccZCOmimBIPfA2x+LpdEa41ftJpxdM5AkEA4JbhbCaCGTQe ra9vGs/GIa61Rhemp8Ei/CrQwE8IgeMTFEnWj7qz23851uwPcdXUV4KvN/JtsFnr m2wyd501KwJBAMcKDO/XDgHuZc9X06lp0rkTqH6ToP7iZFhGvQV7TPt0AsJ2ew8z BKXAAwAE1aVWmt1V2OfX2JgXYUJGjX9eASUCQQDIMzc25QzL0r4WLXBpAhWoKMjG dobEu1GoX7I9+zWmMvjq+PceoFt7qmmwwDT0UJw8de4jfSNyNHXl0gkavzSJAkAO bQ4O/BlJzouWgZkXuFHLlD8sHWsXzjTTqRzeHtevifMBQTEeIuZ9VPNitvb9Ks/C pww3kY9jRp6H/TEYQCn5AkBp/tVM5fh7zp3D0K22oj/0N4aDMPMJ+PiaIMVz8ATj sqX4tZ0dDJ1tInz7uiDM1WH/8JV48kI6EQ8V2ekct51T'); 
echo $rsa->decrypt($return);
mysqli_close($con);
?>

最佳答案

您正在创建两个 Crypt_RSA 对象,但仅在第一个对象上执行 $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);。在第二个上也这样做,你就可以开始了!

关于php - 我的数据库无法使用 RSA 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20339062/

相关文章:

security - nginx auth_basic 是否发送明文密码?

java - Java 中的 AES 加密与 C# 输出相匹配

javascript - 消息: count(): Parameter must be an array or an object that implements Countable in codeigniter model

php - 使用 postgreSQL 在 PHP 中执行异步准备好的语句并忽略其结果

php - 为 fread fwrite 设置 utf-8 编码

Mysql When 语句错误1054

JavaFX 将数据添加到表中

php - 单击按钮打开多日期选择器

mysql - 运行 MySQL CREATE TABLE 语句时出现语法错误

php - 在 PHP 中用于加密/解密的 Mcrypt 替代品?