これは、phpで暗号化と復号化を使用している方法です。
function ecrypt($str){
$key = "ABCDEH";
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 base64_encode($result);
}
function decrypt($str){
$str = base64_decode($str);
$result = '';
$key = "ABCDEH";
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 $result;
}
暗号化されたテキストには、名前と有効期限が含まれる場合があります。暗号化されたテキストが次の場合:
1yUoaCToqmsqq+4unuFdXWJc4R5hnmL
私は復号化して有効期限を計算しますが、問題はユーザーが入力した場合です1yUoaCToqmsqq+4unuFdXWJc4R5hnmLL
(暗号化されたキーの最後に余分な1文字を追加しました)。
復号化して有効期限を確認すると、それも機能します。余分な文字がある場合は、エラーメッセージをスローする必要があります。
私に助言してください。