0

データベースには、自動インクリメントID(1,2,3、... 999999)を持つユーザーがいます。必要なのは、user_idからランダムに見える静的長(たとえば8文字または10文字)のIDを生成することです。これは、ハッシュ関数のように元のIDにデコードできますが、元に戻すことができ、基本的にはエンコードのように見えます。 /encryption。セキュリティは必要ありません。なぜこれが必要なのですか?ユーザーは端末にIDを入力し、少額の現金で支払う必要があります。そのため、IDが5656で、意図せずに6565を入力した場合、そのようなIDのアカウントがあるため、支払いは6565のアカウントに送られます。しかし、彼のIDが3783479238の場合、たとえば37834792は5656のエンコードされたバージョンであり、最後の2桁(38)はチェックサムです(整合性をチェックするために、バーコードやクレジットカード番号などが存在します)。他のユーザーに支払う方法はありません。

PHP関数/ライブラリは素晴らしいでしょうが、他の言語(c、java、その他)または数学関数だけでこれを使用している場合は問題ありません。

ありがとうございました。

4

1 に答える 1

0

チェックの強度と長さによって異なります。

  • 最も単純なのは、個々の数字をすべて足し合わせると、その数字のモジュロは 9 になるというものです。これは、クレジット カード番号に対して行われるチェックです。
  • ここオランダで11 checkは、銀行口座番号と社会保障番号に使用されます。ここにオランダ語での説明がありますが、数字はわかります。
  • 40 フィートのコンテナには、コンテナ番号にもモジュロ チェックを与える追加の数字があります。あなたはそれをグーグルで検索する必要があります。
于 2012-10-02T12:54:32.120 に答える