Php 调用codeigniter加密密钥

Php 调用codeigniter加密密钥,php,codeigniter,security,encryption,Php,Codeigniter,Security,Encryption,我已经在config.php文件中设置了加密密钥 $config['encryption_key'] = 'az2x@_.@!`~$aezxqy+=@%^&'; 我想在向网站注册用户时使用此密码密钥,现在我正在使用此方法 'password' => hash('sha256', $password . 'az2x@_.@!`~$aezxqy+=@%^&') 有什么方法可以像这样设置上面的代码吗 'password' => hash('sha256', $passw

我已经在config.php文件中设置了加密密钥

$config['encryption_key'] = 'az2x@_.@!`~$aezxqy+=@%^&';
我想在向网站注册用户时使用此密码密钥,现在我正在使用此方法

'password' => hash('sha256', $password . 'az2x@_.@!`~$aezxqy+=@%^&')
有什么方法可以像这样设置上面的代码吗

'password' => hash('sha256', $password . $config['encryption_key']),

当我这样做时,它给出了未定义的$config变量的错误。

我强烈建议对密码salt/hash使用内置的php API,而不是您正在使用的方法,加密密钥用于加密类

$passwordHash = password_hash($password, PASSWORD_BCRYPT);
您使用存储在数据库中的这个经过盐渍和哈希处理的密码

然后,在从数据库获取数据时,使用以下方法进行验证:

password_verify($password, $result->password)
这将返回一个布尔值,因此您可以在if语句中使用它:

if ( password_verify($password, $result->password) ) {

// do login stuff

} else {

// handle login failure

}  
否则,您可以通过以下方式使用加密密钥(强烈反对):


如果这不起作用,您可能正在编写帮助程序或其他东西,因此您需要调用CI实例来访问配置数组。

我强烈建议使用内置的php API进行密码salt/hash,而不是使用您正在使用的方法,加密密钥将用于加密类

$passwordHash = password_hash($password, PASSWORD_BCRYPT);
您使用存储在数据库中的这个经过盐渍和哈希处理的密码

然后,在从数据库获取数据时,使用以下方法进行验证:

password_verify($password, $result->password)
这将返回一个布尔值,因此您可以在if语句中使用它:

if ( password_verify($password, $result->password) ) {

// do login stuff

} else {

// handle login failure

}  
否则,您可以通过以下方式使用加密密钥(强烈反对):


如果这不起作用,您可能正在编写帮助程序或其他东西,因此您需要调用CI实例来访问配置数组。

您永远不应该使用简单的哈希函数来保护用户的密码。您需要使用像PBKDF2、bcrypt、scrypt和Argon2这样的强散列方案。确保使用高成本因素/迭代计数。通常选择成本,使单个迭代至少需要100毫秒。更多信息:仅仅使用散列函数是不够的,仅仅添加一个salt对提高安全性几乎没有什么作用,加密散列非常快。相反,使用随机盐在HMAC上迭代大约100ms,并使用散列保存盐。使用诸如
PBKDF2
(又称
Rfc2898DeriveBytes
)、
password\u hash
/
password\u verify
Bcrypt
等函数和类似函数。关键是让攻击者花费大量时间通过暴力手段查找密码。保护您的用户很重要,请使用安全的密码方法。您不应使用简单的哈希函数来保护您的用户密码。您需要使用像PBKDF2、bcrypt、scrypt和Argon2这样的强散列方案。确保使用高成本因素/迭代计数。通常选择成本,使单个迭代至少需要100毫秒。更多信息:仅仅使用散列函数是不够的,仅仅添加一个salt对提高安全性几乎没有什么作用,加密散列非常快。相反,使用随机盐在HMAC上迭代大约100ms,并使用散列保存盐。使用诸如
PBKDF2
(又称
Rfc2898DeriveBytes
)、
password\u hash
/
password\u verify
Bcrypt
等函数和类似函数。关键是让攻击者花费大量时间通过暴力手段查找密码。保护您的用户很重要,请使用安全的密码方法。