我在CodeIgniter上使用加密而不是加密的方式

时间:2019-03-09 01:53:21

标签: php codeigniter

在CodeIgniter的最新版本中,我使用了函数// Swap the first index with the last index. // [1, 2, 3, 4, 5] -> pointer on one = array[0] and two = array.count - 1 // After first swap+loop increase the pointer one and decrease pointer two until // conditional is not true. func reverseInteger(array: [Int]) -> [Int]{ var array = array var first = 0 var last = array.count - 1 while first < last { array.swapAt(first, last) first += 1 last -= 1 } return array } input-> [1, 2, 3, 4, 5] return->[5, 4, 3, 2, 1]

我用过:

decode()

但是在php 7.2中if($row->accesso == 1 && $row->username == $username $$ $this->obj->encrypt->decode("$row->password") == $password ) 被删除了。如果我使用加密库的mcryptencrypt,则登录时会出错。我无法输入我的页面。你能帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用password_hash / password_verify

测试:

尝试首先使用password_hash()创建用户密码,然后手动将其存储在数据库中,

password_hash('password123', PASSWORD_DEFAULT);

它将输出为:$2y$10$8UgJIh.KAnDc1/b.4gb33eaBtrDRgXb2kQt8oNO0GKRe6sIFKR8IC

然后进行验证,您可以使用password_verify()来检查用户的密码输入是否等于数据库中的hashed password。为此功能使用if else statementpassword_verify()还会为每个匹配的哈希字符串返回true。 (让我们假设$password = 'password123'$hashed_password = $2y$10$8UgJIh.KAnDc1/b.4gb33eaBtrDRgXb2kQt8oNO0GKRe6sIFKR8IC来进行检查:

if(password_verify($password,$hashed_password)) { successful login } else { failure }

您可以阅读有关password_hash()password_verify()的更多信息,以获取更多详细说明。

这只是一个示例,可能无法在当前代码上运行,因为您似乎使用了其他哈希函数。希望这会有所帮助!