Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中使用AES会有多安全?_Php_Laravel_Aes_Mcrypt - Fatal编程技术网

Php 在Laravel中使用AES会有多安全?

Php 在Laravel中使用AES会有多安全?,php,laravel,aes,mcrypt,Php,Laravel,Aes,Mcrypt,这会比仅仅传递密钥的纯文本更安全吗?我想知道这对于存储敏感数据有多安全。如果有人知道你正在使用的算法(即md5),那么它就和“秘密密码”一样安全。如果编码的消息被泄露,可能会有一点帮助,但更安全的是用盐散列“秘密密码”。如果您真的很想保护此“机密消息”的安全,可以在加密消息之前使用密码\u散列函数()对密钥进行编码。以这种方式使用AES到底有什么意义?如果我在默认情况下使用应用程序密钥进行加密,有人可以进入我的服务器并获取密钥,所有内容都可以解密。如果密钥是用户输入,然后在加密之前对密钥进行密码

这会比仅仅传递密钥的纯文本更安全吗?我想知道这对于存储敏感数据有多安全。

如果有人知道你正在使用的算法(即md5),那么它就和“秘密密码”一样安全。如果编码的消息被泄露,可能会有一点帮助,但更安全的是用盐散列“秘密密码”。如果您真的很想保护此“机密消息”的安全,可以在加密消息之前使用密码\u散列函数()对密钥进行编码。

以这种方式使用AES到底有什么意义?如果我在默认情况下使用应用程序密钥进行加密,有人可以进入我的服务器并获取密钥,所有内容都可以解密。如果密钥是用户输入,然后在加密之前对密钥进行密码\u散列,那么只要用户输入(密码),它就非常安全不会在任何地方重复使用。密码散列被设计成需要很长时间来使用暴力。不过我想我明白你的意思了:在页面中输入一个静态密钥是一个不好的编码方法。就像你说的,有人可以得到并利用它。变量键(如用户输入)是好的-只要它不存储在任何地方-并且密码\u散列可能是多余的。@有用的多余吗?pffff。不可能。我建议您在md5上使用密码散列。md5可以以极快的速度被强制执行。它永远不会被存储在任何地方,而是由用户记忆并输入以解密数据。此外,密码散列不起作用,因为这些aes密钥不能那么长。
$key = md5('secret password'); 
// this ^ would be supplied by the user every login, never stored
Crypt::setKey($key);
$encrypted = Crypt::encrypt('secret message'); 
// this ^ would be stored in a database
$decrypted = Crypt::decrypt($encrypted);
return $decrypted;