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