0

これを SQL フォーラムに投稿することもできましたが、アイデアやベスト プラクティスを探しているので、このフォーラムを選びました。給与番号と呼ばれる SQL の整数列があり、従業員に固有です。SQL ビューを介してこのシステムから従業員情報を取得し、別のシステムに入力しますが、給与番号がこのシステムにそのまま表示されることは望ましくありません。したがって、ビューがハッシュ化されたユーザーフレンドリーな数値を提供できるように、SQL でこれらの給与番号をハッシュする必要があります。

私はかなりの時間をかけて SQL の暗号化技術を読みましたが、それらは複雑なアルゴリズムを使用してデータをハッシュし、バイナリを生成しています。しかし、私が求めているのは、ハッシュではなく、複雑さを軽減し、数値を難読化することです。

たとえば、給与番号は 6 文字 (145674) です。この番号から 9 ~ 10 文字の長さの整数を生成し、他のシステムで使用できるようにしたいと考えています。

XOR'ing を見てみましたが、もっと堅牢でエレガントなものが必要です。

皆さんはこれらのことをどのようにしていますか?整数を難読化する単純なアルゴリズムを作成しますか? SQL レベルでこれを行う必要があります。

ご協力いただきありがとうございます

よろしく

4

1 に答える 1

2

値をハッシュするのは難しくありませんが、値をハッシュして一意性を確認し、数値にするのは困難です。ただし、クロス データベース ソリューションがあります。

id (ランダムな開始点から自動生成) と給与 ID の 2 つの列を持つ新しいテーブルを作成します。

ユーザーを外部から使用する必要があるたびに、それらをこのテーブルに挿入します。これにより、(内部および外部で) 使用できるローカル固有の ID が得られますが、これは給与 ID ではありません。

実際、すでに内部 ID (たとえば、user テーブルのユーザー ID) がある場合は、それを使用してください。デコードされない場合、この値をハッシュしても利点はありません。ただし、id の autogen をランダムな一意のハッシュとして使用できます。必要なすべてのプロパティが含まれています。

于 2013-01-15T15:41:19.860 に答える