Ruby 生成随机字符串,不带SecureRandom

Ruby 生成随机字符串,不带SecureRandom,ruby,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 <

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

  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"

post上次我在rand上使用MD5时是这样的:

require 'md5'
random_string = MD5.md5(rand(1234567).to_s).to_s

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

rand(10000000000000).floor.to_s(36)
这将生成一个随机数(更改乘数使字符串变长),并以基数36(10个数字+26个字母)表示

对于Base64字符串,可以执行以下操作

require 'base64'
Base64.encode64(rand(10000000000000).to_s).chomp("=\n")

如果您需要固定长度的字符串,请使用1000000+兰特(10000000)之类的随机数字范围进行播放。

如果您需要随机字母数字字符串,可以执行以下操作

 o =  [('a'..'z'),('A'..'Z'),('0'..'9')].map{|i| i.to_a}.flatten
 string  =  (0...50).map{ o[rand(o.length)]  }.join
这还将生成字母数字随机字符串

rand(36**length).to_s(36)

您还可以传递“长度”以生成随机字符串的大小。Ex.8或10

为什么需要随机?我不能使用预先生成的边界字符串,因为如果我上传的文件包含该字符串,我需要生成一个新的边界字符串。