Codeigniter无法解码加密密码

Ben*_*Ben 5 php encryption codeigniter

我做了一个登录表单,用户提交了他的用户名和密码.如果用户名存在,我解码密码并检查是否与提交的密码相同.

//这是来自db

string(50) "v+bNPHNWHGQbcxrvu1vN8Ty++cMq0oEeaZesvfCfsLgNAFgZno"
Run Code Online (Sandbox Code Playgroud)

//这是在解码上面的字符串之后

string(32) "�� U�U{q�0�4��è€UC��o�/�*�."
Run Code Online (Sandbox Code Playgroud)

但它应该返回123456

对于我使用的编码

$this->encrypt->encode('123456');
Run Code Online (Sandbox Code Playgroud)

这是秘密密钥

$config['encryption_key'] = 'kRlaMneym7rF';
Run Code Online (Sandbox Code Playgroud)

//编辑

问题是密码字段设置为varchar 50

Ste*_*sen 5

请在配置中检查您的codeigniter字符集

$config['charset'] = 'UTF-8';
Run Code Online (Sandbox Code Playgroud)

而不是数据库的字符集。您的冲突可能来自那里。

将Codeigniter进行测试,看看是否返回正确的结果。像以前一样尝试硬编码,或者在您的控制器中进行复制和测试。

$config['charset'] = 'UTF-8';
Run Code Online (Sandbox Code Playgroud)

}

我的产生了预期的结果:12345。如果可行,那么您的问题可能是字符集(字符集)。我在这里使用加密密钥。您可以通过在编码和解码中省略第二个参数来在配置中使用默认值。

让我知道是否有帮助