次のように、ID を数字と大文字を含む一意の文字列にエンコードしたいと考えています。
40 => A5TY8
しかし
41 => Y7HEG
の出力は の41
とはまったく異なり40
ますA5TY9
。
これを行う方法?
次のように、ID を数字と大文字を含む一意の文字列にエンコードしたいと考えています。
40 => A5TY8
しかし
41 => Y7HEG
の出力は の41
とはまったく異なり40
ますA5TY9
。
これを行う方法?
ダイジェストについてすべてお話ししたかったのですが、あなたのコメントを見て、あなたはこのようなものが欲しいと思います
https://github.com/namick/obfuscate_id
またはより一般的な
https://github.com/patdeegan/integer-obfuscator
可逆的なBase64でエンコードすることもできます
http://ruby-doc.org/stdlib-1.9.3/libdoc/base64/rdoc/Base64.html
urlsafe_encode64
/n などをそこに入れないように使用したい場合があることに注意してください
だからあなたは何かをすることができます
require "base64"
original = 41
converted = Base64.urlsafe_encode64("41")
converted_for_display = converted.tr('^A-Za-z0-9', '')
# => "NDE"
reversed = Base64.urlsafe_decode64(converted)
番号を暗号化して一意で可逆にすることもできますが、遅くて手間がかかりますが、必要なキーを選択できます