いくつかのマイナーなセキュリティに使用する暗号化がありますが、暗号化された文字列の末尾に常に %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
どちらも同じものを復号化します。最後に余分な文字がないように、暗号化された文字列をクリーンアップしたいだけです。
ありがとう