Tôi đã tạo biểu mẫu đăng nhập nơi người dùng gửi tên người dùng và mật khẩu của mình. Nếu tên người dùng tồn tại, tôi giải mã mật khẩu và kiểm tra xem có giống mật khẩu đã gửi hay không.Codeigniter không thể giải mã mật khẩu được mã hóa
// Đây là từ db
string(50) "v+bNPHNWHGQbcxrvu1vN8Ty++cMq0oEeaZesvfCfsLgNAFgZno"
// Và đây là sau khi giải mã chuỗi trên
string(32) "�� U�U{q�0�4��è€UC��o�/�*�."
Nhưng nó phải trở
Đối với mã hóa tôi sử dụng
$this->encrypt->encode('123456');
Và đây là khóa bí mật
$config['encryption_key'] = 'kRlaMneym7rF';
// Sửa
Vấn đề được rằng trường mật khẩu được thiết lập để varchar 50
Bạn không nên mã hóa mật khẩu của mình nhưng băm chúng.Sau đó, khi người dùng cố gắng đăng nhập, bạn băm giá trị đã gửi và kiểm tra nó bằng hàm băm trong cơ sở dữ liệu. Có nhiều hơn một chút để nó (muối, vv), nhưng đó là cơ bản nó. – jeroen
Làm cách nào để giải mã dữ liệu? – Repox
$ this-> encrypt-> decode ('v + bNPHNWHGQbcxrvu1vN8Ty ++ cMq0oEeaZesvfCfsLgNAFgZno'); – Ben