gpt4 book ai didi

PHP字符串加密/解密,我做错了吗?

转载 作者:行者123 更新时间:2023-11-29 07:11:58 26 4
gpt4 key购买 nike

嘿,我真的需要一些指导。

自动提款机。我正在对常规字符串使用这种加密/解密方法。

function encrypt($pure_string) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, "!@#$%#^&*", utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
return $encrypted_string;
}
function decrypt($encrypted_string) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, "!@#$%#^&*", $encrypted_string, MCRYPT_MODE_ECB, $iv);
return $decrypted_string;
}

但是经过一些研究,这可能不是最安全的方法?数据存储在 MYSQL DB 中。

而且我无权将自定义 php 插件安装到网络服务器。那么还有其他安全的方法可以做到这一点吗?

我应该如何生成/存储我的加密 key ?

这不用于密码等。

最佳答案

But after some research that might not be the most secure way?

您以某种方式成功地解决了不安全代码的三位一体:

  1. 库:使用一个废弃的库(mcrypt),它有很多错误。 OpenSSL 可以使用,但安全使用它仍然是一个挑战。 defuse/php-encryption是一个更好的选择。

  2. 分组密码:使用 Blowfish,甚至它的创建者也说它不安全。 AES (=Rijndael-128) 是一个更好的替代方案,但是在使用好的库时您不必担心这一点(请参见 1)。

  3. 分组密码操作模式:使用 ECB 模式几乎在所有情况下都是不安全的 ( scroll down to the penguin )。一般来说,需要像 CBC 这样的随机模式,但在使用好的库时,这不是您应该担心的事情(参见 1)。

这适用于数据(以及其他一些)的安全传输。如果您需要根据加密列在数据库中查找内容,那么您需要考虑添加哈希列或真正使用 ECB 模式。

And how should I generate / store my encryption key?

键通常是简单的字节数组。有些密码(例如 DES)的 key 较弱,您需要检查这些 key 并生成另一个 key 。一个好的库通常会为您提供一个用于生成 key 的 API。

存储 key 是一个备受争议的问题。考虑一下对一些数据进行加密的有用性,其中 key 存储在加密数据附近。毕竟,您通常需要频繁访问和解密该数据。对此没有好的解决方案。如果您将加密 key 存储在另一台计算机上而不是数据上,那么出现其他问题并使网络容易受到攻击的可能性就更高。

关于PHP字符串加密/解密,我做错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39365723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com