【发布时间】:2020-10-22 05:36:55
【问题描述】:
我正在尝试使用 Ruby 解决以下问题:
我需要生成具有可变位长度且仅包含字母数字字符的字符串。
这是我所拥有的already found:
Digest::SHA2.new(bitlen = 256).to_s
# => "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
它完全符合我的需要,但它只接受 256、384 和 512 作为 bitlen。
有人知道有什么替代方案吗?
提前致谢。
更新
('a'..'z').chain('A'..'Z').chain('0'..'9').map(&:bytesize).uniq
# => [1]
-
基于上述事实,我们可以假设
-
SecureRandom.alphanumeric(1)生成一个 8 位长度的字母数字字符串。 -
SecureRandom.alphanumeric(2)生成一个 16 位长度的字母数字字符串。 -
SecureRandom.alphanumeric(3)生成一个 24 位长度的字母数字字符串。 - 等等……
-
-
因此,@anothermh's answer 可以被视为可接受的解决方案。
【问题讨论】:
标签: ruby string bit variable-length