「1234」などの値を想像してください。その値を「abcd」などの別の値にマップしたいと思います。制約:
- ターゲット値の長さが開始値と等しい
- マッピングは一意である必要があります。たとえば、1234 は abcd と viseversa にのみマップする必要があります
- マッピング プロセスは (非常に) 推測しにくいものにする必要があります。たとえば、2 を掛けるとカウントされます
- マッピングは可逆的である必要があります
- 開始値は整数です
- ターゲット値は任意の型にすることができます
これは基本的なアルゴリズムである必要があり、最終的には Ruby で記述しますが、ここでは関係ありません。
私は次の行に沿って考えていました:
SECRET = 1234
def to(int)
SECRET + int * 2
end
def fro(int)
(int - SECRET) / 2
end
明らかに、これは制約 1 と 3 に違反しています。
最終的な目標は、データベース内のレコードを匿名化することです。私はこれを考えすぎているかもしれません。