1

次のように、ID を数字と大文字を含む一意の文字列にエンコードしたいと考えています。

40 => A5TY8

しかし

41 => Y7HEG

の出力は の41とはまったく異なり40ますA5TY9

これを行う方法?

4

1 に答える 1

2

ダイジェストについてすべてお話ししたかったのですが、あなたのコメントを見て、あなたはこのようなものが欲しいと思います

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)

番号を暗号化して一意で可逆にすることもできますが、遅くて手間がかかりますが、必要なキーを選択できます

于 2013-01-21T18:24:42.623 に答える