我想将 id 编码为包含数字和大写字母的唯一字符串,如下所示:
40 => A5TY8
但
41 => Y7HEG
的输出与's41
完全不同的地方。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)
您还可以加密应该使其唯一且可逆的数字,但速度较慢且更麻烦,但您可以选择您想要的任何密钥