0

これは、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文字を追加しました)。

復号化して有効期限を確認すると、それも機能します。余分な文字がある場合は、エラーメッセージをスローする必要があります。

私に助言してください。

4

0 に答える 0