为什么SecureRandom #hex方法加倍其长度参数n?

Jon*_*ans 3 ruby

我试图在rails应用程序的ruby中为密码生成盐时遇到了这个函数.为什么它会使长度参数加倍/坚持返回的字符串长度是多少?

rua*_*akh 7

该方法生成n个字节的随机序列(参见random_bytes方法),然后返回该序列的base-16表示(每个字节有两个十六进制数字).

这也是为什么base64urlsafe_base64方法返回大约4 n/3 长度的字符串的原因:它们生成n个字节,然后执行Base-64编码.