Codeigniter 4:如何检测"Decrypting: authentication failed"
Codeigniter 4: How to detect "Decrypting: authentication failed"
我在使用 Codeigniter 4 和加密服务时遇到了问题。
一切正常,我可以毫无问题地加密和解密,但我想检测加密字符串何时出现错误“解密:身份验证失败。”
基本上我想做的就是:
- 获取加密字符串
- 解密字符串:如果解密成功则继续执行脚本,否则给出404错误
这是我的测试代码,也许它有助于解释我的问题
$ct1 是正确的加密字符串,$ct2 是相同的字符串但第一个字符改变了,只是为了模拟错误,第一个正确解密,第二个给出错误,我想检测这个错误并显示 404 页面(我知道如何显示 404 页面,我只需要一种检测错误的方法)。
$enc = \Config\Services::encrypter();
$ct1 = "9c68ef9159b..."; //The string is very long, I don't think is necessary to write it all
$ct2 = "1c68ef9159b...";
print_r($enc->decrypt(hex2bin($ct1)));
print_r($enc->decrypt(hex2bin($ct2)));
在此先感谢所有愿意帮助我的人。
您可以为解密创建一个函数,如下所示:
public function decrypt_token($ct1){
try{
$enc->decrypt(hex2bin($ct1))
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
// or
header('Location: http://www.example.com/404');
}
}
更多内容请阅读here。
仅作记录,这是在 Codeigniter 4 中使用的完整代码。
public function testEncryption()
{
$enc = \Config\Services::encrypter();
$encrypted_string = "9c68ef9159...";
try
{
// print the encrypted string
echo $enc->decrypt(hex2bin($encrypted_string));
}
catch(\Exception $e)
{
// or if encrypted_string is not valid then show 404 page or do whatever you want
return view('errors/html/error_404');
}
}
我在使用 Codeigniter 4 和加密服务时遇到了问题。 一切正常,我可以毫无问题地加密和解密,但我想检测加密字符串何时出现错误“解密:身份验证失败。”
基本上我想做的就是:
- 获取加密字符串
- 解密字符串:如果解密成功则继续执行脚本,否则给出404错误
这是我的测试代码,也许它有助于解释我的问题
$ct1 是正确的加密字符串,$ct2 是相同的字符串但第一个字符改变了,只是为了模拟错误,第一个正确解密,第二个给出错误,我想检测这个错误并显示 404 页面(我知道如何显示 404 页面,我只需要一种检测错误的方法)。
$enc = \Config\Services::encrypter();
$ct1 = "9c68ef9159b..."; //The string is very long, I don't think is necessary to write it all
$ct2 = "1c68ef9159b...";
print_r($enc->decrypt(hex2bin($ct1)));
print_r($enc->decrypt(hex2bin($ct2)));
在此先感谢所有愿意帮助我的人。
您可以为解密创建一个函数,如下所示:
public function decrypt_token($ct1){
try{
$enc->decrypt(hex2bin($ct1))
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
// or
header('Location: http://www.example.com/404');
}
}
更多内容请阅读here。
仅作记录,这是在 Codeigniter 4 中使用的完整代码。
public function testEncryption()
{
$enc = \Config\Services::encrypter();
$encrypted_string = "9c68ef9159...";
try
{
// print the encrypted string
echo $enc->decrypt(hex2bin($encrypted_string));
}
catch(\Exception $e)
{
// or if encrypted_string is not valid then show 404 page or do whatever you want
return view('errors/html/error_404');
}
}