

ユーザーが他のユーザーのIDを推測しにくいように、システム内部で使っている数値のIDを固定長文字列に変換して画面側に送りたいのですが、適した暗号化方式はありすでしょうか？

イメージ  
00001 ←→ AAAAB  
00002 ←→ AAAAC  
00003 ←→ AAAAD  
00004 ←→ AAAAE  
※これだと単純すぎますが、コスト優先で暗号化、複合化したいです。


CC BY-SA 4.0
2020-09-19T12:05:10.077
70537
2020-12-22T13:15:33.770
41551
question
暗号理論
固定長数値IDを推測しにく固定長文字列に暗号化する方法を探しています。


ID カラムに対して UUID を生成して保存しておき、それをユーザーに対しては表示するのが一般的な回答になるかと思います。

それはそうと、どうしても ID を一意に暗号化してユーザーに共有しなければならない場合、 AES256
あたりの、共通鍵暗号化を用いて暗号化/復号化するとして、ユーザーには暗号化結果を hexdump
したものを送るようにすれば、ひとまずはそれっぽくはなりそうだな、とは思います。(対象の ID のレンジが 128bit
以下ならば、暗号化結果は32文字の[0-9a-f]の文字列ができあがります)


CC BY-SA 4.0
2020-12-22T13:15:33.770
72826
2020-12-22T13:15:33.770
754
70537
answer