2016-03-21 26 views
-1

我有一些需要加密数据库存储的表单输入。我不确定我是否使用最好的加密技术。这是我使用保存在环境文件中的字符串进行加密和解密。这是一种将字符串加密成数据库的好方法吗?

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); 
    } 
} 
+1

取决于你正在加密的私人消息 - 真棒。对于密码或敏感数据 - 不。 – KDOT

+1

这不是很棒。 –

回答

3

您的加密代码存在问题。

回到你发现那个代码的地方,告诉他们他们教你错了。 See this answer为更好的选择。

+0

'回到你发现那个代码的地方,告诉他们他们教你错了 - 你刚刚把他送到了大概100多个网站;你有关于这个的博客吗?通读您的答案和完整性链接很有意思。 – KDOT

+0

mcrypt sucks链接转到我发布加密/安全性内容的博客。点击页面底部的“cryptography”标签获取大量内容。我还策划了Github上的appsec阅读列表。 –

+0

这很有趣,因为作为一名开发人员,除非您正在开发众所周知的源代码,否则您从不会谈论黑客企图或看到它们;这些“后门”,或者他们称之为的任何东西,都是发展中的一个重要因素,而这些因素并没有得到教育。我一定会传播你的信息,不仅有趣,而且你可以在你的网站上了解更多信息,而不是在其他100个网站上阅读。做得好。 – KDOT

相关问题