在PHP中如何在没有硬编码密钥的情况下进行对称加密

亚历山大·贾斯蒂诺(Alexandre Justino)

我正在使用PHPmcryptMySQL通过AES加密和存储()数据。

我想知道是否有一种很好的方法可以在我的代码中没有硬编码的加密/解密密钥的情况下进行此操作。

如果黑客访问了我的服务器,他将能够在代码中看到文件和我的密钥,因此可以访问数据库中的所有数据。

谢谢。

斯科特·阿西塞夫斯基(Scott Arciszewski)

我正在使用PHPmcryptMySQL通过AES加密和存储()数据。

您可能希望重新考虑在加密库中的选择

我想知道是否有一种很好的方法可以在我的代码中没有硬编码的加密/解密密钥的情况下进行此操作。

将其存储在文档根目录之外的配置文件中吗?例如,defuse / php-encryption

如果黑客访问了我的服务器,他将能够在代码中看到文件和我的密钥,因此可以访问数据库中的所有数据。

如果黑客可以访问您的服务器,那么对称密钥加密将无法保存您但是,公钥加密可以保留机密性。

使用Halite,这很容易解决:

  1. 您只能在服务器上加密;永远不要解密。
  2. 您的秘密密钥必须保持离线状态,并由人类使用。

在线代码(假设PHP 7.0和Halite 2.1)

<?php
declare(strict_types=1);
use ParagonIE\Halite\{
    Asymmetric\Crypto as Asymmetric,
    KeyFactory
};

$publicKey = KeyFactory::loadEncryptionPublicKey("/path/to/public/key");
$encrypted = Asymmetric::seal("Whatever secret data we want", $publicKey);
// Now do whatever you need with $encrypted

离线代码(假设PHP 7.0和Halite 2.1)

<?php
declare(strict_types=1);
use ParagonIE\Halite\{
    Asymmetric\Crypto as Asymmetric,
    KeyFactory
};

$salt = ""; // Generate from random_bytes(16) once, then persist.
$password = ""; // Create a strong password

$keyPair = KeyFactory::deriveEncryptionKeyPair($password, $salt);
$secretKey = $keyPair->getSecretKey();
$publicKey = $keyPair->getPublicKey();

// To have the public key to a file to upload to the server:
   KeyFactory::save($publicKey, '/path/to/public/key');

$decrypted = Asymmetric::unseal($encrypted, $secretKey);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在没有密钥的情况下使用NSSortDescriptor

来自分类Dev

如何在没有硬编码路径的情况下从64位Java进程启动32位Java进程

来自分类Dev

如何在未对硬脚本进行硬编码的情况下从Artscript发送Artifactory发布的凭据?

来自分类Dev

如何使用PHP中的对称密钥算法对结果中没有元字符的数据进行加密

来自分类Dev

如何在不进行硬编码的情况下获取方法名?

来自分类Dev

如何在不对MongoDB的$ in进行硬编码的情况下动态给出列表?

来自分类Dev

如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

来自分类Dev

JS:如何在没有XMLHttpRequest的情况下对base64进行编码?

来自分类Dev

是否可以在没有对代码进行硬编码的情况下将图标与css:一起使用?

来自分类Dev

如何在不进行硬编码的情况下删除文件夹上的所有拒绝权限?

来自分类Dev

如何在不进行硬编码的情况下获取C ++中类数组的长度?

来自分类Dev

如何在不进行硬编码的情况下使用多个discord bot帐户登录?

来自分类Dev

如何在没有硬编码字符串的情况下打印函数名称?

来自分类Dev

如何在不对凭据进行硬编码的情况下正确连接到数据库?

来自分类Dev

Python / Matplotlib-如何在不进行硬编码的情况下计算/绘制导数?

来自分类Dev

如何在Python中打开多个加密的PDF并在没有密码的情况下保存

来自分类Dev

我如何在Flutter中没有密钥的情况下获取JSON数据?

来自分类Dev

Swift Json如何在没有顶级密钥和自动生成密钥的情况下进行解码

来自分类Dev

如何在没有对称密码的情况下对短数据使用公钥/私钥

来自分类Dev

如何在不对MongoDB的$ in进行硬编码的情况下动态给出列表?

来自分类Dev

在PHP中如何在没有硬编码密钥的情况下进行对称加密

来自分类Dev

如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

来自分类Dev

HTML-如何在没有硬编码的情况下将<span> </ span>标记插入<pre> </ pre>块的每一行?

来自分类Dev

如何在没有硬编码的情况下在 cloud-init 中引用 AWS 访问密钥(秘密密钥)

来自分类Dev

instagram 如何在没有像 PHP 中那样获取 ID 的情况下进行用户名系统

来自分类Dev

如何在没有硬编码的情况下将 ASP.NET MVC Url.Action 指向 Angular 路由?

来自分类Dev

如何在没有硬编码的情况下获取当前用户 ID?

来自分类Dev

如何在没有groupby的情况下进行运行长度编码

来自分类Dev

如何在没有硬编码变量的情况下移动项目

Related 相关文章

  1. 1

    如何在没有密钥的情况下使用NSSortDescriptor

  2. 2

    如何在没有硬编码路径的情况下从64位Java进程启动32位Java进程

  3. 3

    如何在未对硬脚本进行硬编码的情况下从Artscript发送Artifactory发布的凭据?

  4. 4

    如何使用PHP中的对称密钥算法对结果中没有元字符的数据进行加密

  5. 5

    如何在不进行硬编码的情况下获取方法名?

  6. 6

    如何在不对MongoDB的$ in进行硬编码的情况下动态给出列表?

  7. 7

    如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

  8. 8

    JS:如何在没有XMLHttpRequest的情况下对base64进行编码?

  9. 9

    是否可以在没有对代码进行硬编码的情况下将图标与css:一起使用?

  10. 10

    如何在不进行硬编码的情况下删除文件夹上的所有拒绝权限?

  11. 11

    如何在不进行硬编码的情况下获取C ++中类数组的长度?

  12. 12

    如何在不进行硬编码的情况下使用多个discord bot帐户登录?

  13. 13

    如何在没有硬编码字符串的情况下打印函数名称?

  14. 14

    如何在不对凭据进行硬编码的情况下正确连接到数据库?

  15. 15

    Python / Matplotlib-如何在不进行硬编码的情况下计算/绘制导数?

  16. 16

    如何在Python中打开多个加密的PDF并在没有密码的情况下保存

  17. 17

    我如何在Flutter中没有密钥的情况下获取JSON数据?

  18. 18

    Swift Json如何在没有顶级密钥和自动生成密钥的情况下进行解码

  19. 19

    如何在没有对称密码的情况下对短数据使用公钥/私钥

  20. 20

    如何在不对MongoDB的$ in进行硬编码的情况下动态给出列表?

  21. 21

    在PHP中如何在没有硬编码密钥的情况下进行对称加密

  22. 22

    如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

  23. 23

    HTML-如何在没有硬编码的情况下将<span> </ span>标记插入<pre> </ pre>块的每一行?

  24. 24

    如何在没有硬编码的情况下在 cloud-init 中引用 AWS 访问密钥(秘密密钥)

  25. 25

    instagram 如何在没有像 PHP 中那样获取 ID 的情况下进行用户名系统

  26. 26

    如何在没有硬编码的情况下将 ASP.NET MVC Url.Action 指向 Angular 路由?

  27. 27

    如何在没有硬编码的情况下获取当前用户 ID?

  28. 28

    如何在没有groupby的情况下进行运行长度编码

  29. 29

    如何在没有硬编码变量的情况下移动项目

热门标签

归档