パーマリンクでデータベースIDを難読化するために私がやろうとしていることは次のとおりです。
1) ID と長い秘密鍵のXOR
2)可逆的な方法で、XOR された整数のビットを少しスクランブル(回転、反転、反転) します。
3) Base 62は、結果の整数を、すべての英数字 (A-Za-z0-9) のシーケンスをスクランブルした独自の秘密でエンコードします。
Base 62 エンコーディングを Base 10 に変換するのはどれくらい難しいでしょうか?
また、プロセス全体をリバース エンジニアリングするのはどのくらい難しいですか? (明らかに、ソースまたはコンパイル済みコードのピークをとることはありません) 「XOR のみ」が基本的な分析の影響をかなり受けやすいことはわかっています。
編集:結果の長さは 8 ~ 9 文字を超えてはなりません。3DES と AES は非常に長い暗号化テキストを生成するようであり、URL では実際には使用できません。
結果の文字列は次のようになります。
In [2]: for i in range(1, 11):
print code(i)
...:
9fYgiSHq
MdKx0tZu
vjd0Dipm
6dDakK9x
Ph7DYBzp
sfRUFaRt
jkmg0hl
dBbX9nHk4
ifqBZwLW
WdaQE630
ご覧のとおり、1 は 2 のようには見えないため、これは ID の難読化にうまく機能しているようです。