Php 这是将字符串加密到数据库中的一种好形式吗?

Php 这是将字符串加密到数据库中的一种好形式吗?,php,encryption,Php,Encryption,我有一些表单输入需要加密以用于数据库存储。我不确定我是否使用了最好的加密。这是我的加密和解密,字符串保存在环境文件中 class encrypt { public static function encrypt_text($value) { if(!$value) return false; $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, env('ENCRYPT_STRING_1'), $value, MCRYP

我有一些表单输入需要加密以用于数据库存储。我不确定我是否使用了最好的加密。这是我的加密和解密,字符串保存在环境文件中

class encrypt
{
   public static function encrypt_text($value)
   {
   if(!$value) return false;

      $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, env('ENCRYPT_STRING_1'), $value, MCRYPT_MODE_ECB, env('ENCRYPT_STRING_2'));
      return trim(base64_encode($crypttext));
   }

   public static function decrypt_text($value)
   {
      if(!$value) return false;

      $crypttext = base64_decode($value);
      $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256,    env('ENCRYPT_STRING_1'), $crypttext, MCRYPT_MODE_ECB, env('ENCRYPT_STRING_2'));
      return trim($decrypttext);
   }
}

加密代码有问题

Rijndael256不是AES如果你期待的话抱歉, 欧洲央行模式 使用trim+null padding->如果您尝试使用此方法存储二进制数据,则会在开始和结束时丢失字节 它使用libmcrypt,这是一个废弃软件
回到你发现代码的地方,告诉他们他们教你错了。这是一个更好的选择。

取决于您加密的内容,对于私人信息,这太棒了。对于密码或敏感数据-不。回到你发现密码的地方,告诉他们他们教你错了-你刚刚把他发送到大约100多个站点;你有关于这个的博客吗?阅读你的答案和完整性链接很有意思。mcrypt的链接指向我发布加密/安全信息的博客。点击页面底部的加密标签,可以看到很多东西。我还在Github上策划了一份appsec阅读列表。这很有趣,因为作为一名开发人员,除非你在开发广为人知的资源,否则你永远不会谈论或看到黑客企图;这些“后门”,或者他们管它们叫什么,是发展中的一个重要因素,只是没有人教。我肯定会把你的页面传播开来,它不仅有趣,而且你可以在你的网站上学到比在100个其他网站上阅读更多的东西。干得好。