生成随机字符串,不带SecureRandom

Cha*_*ier 2 ruby

我需要为多部分上传生成边界

  post << "--#{BOUNDARY}\r\n"
  post << "Content-Disposition: form-data; name=\"datafile\"; filename=\"#{filename}\"\r\n"
  post << "Content-Type: text/plain\r\n"
  post << "\r\n"
  post << file
  post << "\r\n--#{BOUNDARY}--\r\n"
Run Code Online (Sandbox Code Playgroud)

BOUNDARY需要是随机字符串(文件中不存在).

在rails中,我可以做SecureRandom.hex(10)

如果不加载activesupport,我可以做谁?

mic*_*cho 5

如果您需要随机字母数字字符串,请使用以下内容:

rand(10000000000000).floor.to_s(36)
Run Code Online (Sandbox Code Playgroud)

这将产生一个随机数(更改乘数以使字符串更长)并将其表示为基数36(10个数字+ 26个字母).

对于Base64字符串,您可以执行类似的操作

require 'base64'
Base64.encode64(rand(10000000000000).to_s).chomp("=\n")
Run Code Online (Sandbox Code Playgroud)

如果您需要固定长度的字符串,请使用您提供的随机数范围,使用1000000 + rand(10000000).