我有一个用于一些次要安全性的加密,但我注意到 out 似乎总是在加密字符串的末尾有 %3D ,我不知道为什么。
private static function encrypt($str, $key)
{
$result = null;
for ($i = 0; $i < strlen($str); $i++) {
$char = substr($str, $i, 1);
$keyChar = substr($key, ($i % strlen($key)) - 1, 1);
$char = chr(ord($char) + ord($keyChar));
$result .= $char;
}
return urlencode(base64_encode($result));
}
我看不到那里有什么刺眼的东西。
解密字符串时,当我手动删除字符串末尾的额外 %3D 时,没有错误。
所以
bnNMTXc0Sjc%3D
和
bnNMTXc0Sjc
两者都将解密相同。我只想清理加密的字符串,以免末尾有多余的字符。
谢谢