- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
Golang 是否有与 PHP 相同或几乎相同的函数 openssl_random_pseudo_bytes()
功能?
我需要它在 Golang 中生成伪随机字节串。
最佳答案
快速轻量级的伪随机字节串生成器
首先定义我们想要用于我们的生成器的字节数组(在这种情况下它应该是字母)然后决定有多少位代表一个字母(这将允许我们一个接一个地取字母)和包含一个字母的位数的字母"template"我还存储了可以从字节数组中获取的最大索引
const (
letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
letterIdxBits = 6 // 6 bits to represent a letter index
letterIdxMask = 1<<letterIdxBits - 1 // All 1-bits, as many as letterIdxBits
letterIdxMax = 63 / letterIdxBits // # of letter indices fitting in 63 bits
)
StringRandomizer 函数获取一个参数(我想作为结果获取的字符串的长度)
基本上,这个函数只是一个简单的循环,它创建一个新的字节数组,该数组具有定义的长度和伪随机元素。直到我没有填写结果数组的所有必需元素(没有放入'n'个元素),我从我的 letterBytes 常量中得到一个随机字母。如果我想在最后得到的字符串长度超过 letterIdxMax,我只需创建新的 63 字节随机序列 (src.Int63()) 并继续循环
func StringRandomizer(n int) string {
src := rand.NewSource(time.Now().UnixNano())
b := make([]byte, n)
// A src.Int63() generates 63 random bits, enough for letterIdxMax characters!
for i, cache, remain := n-1, src.Int63(), letterIdxMax; i >= 0; remain-- {
if remain == 0 {
cache, remain = src.Int63(), letterIdxMax
}
if idx := int(cache & letterIdxMask); idx < len(letterBytes) {
b[i] = letterBytes[idx]
i--
}
cache >>= letterIdxBits
}
return string(b)
}
关于PHP 的 openssl_random_pseudo_bytes Golang 的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41382570/
我在 PHP 中使用 opennssl_random_pseudo_bytes(),它的执行速度非常慢。我的应用程序经常超时(抛出执行时间限制错误)。 OpenSSL random 这么慢有什么特别的
我一直被告知在给密码加盐时应该使用 openssl_random_pseudo_bytes。 但我真正想知道的是,是什么让它在密码学上是安全的。 rand 之间的内部区别是什么? , mt_rand和
我需要提高我们网站的安全性,目前正在使用此处的指南:http://crackstation.net/hashing-security.htm ,以及此处生成的随 secret 码:https://de
我正在用 php 5.4 开发一个站点,我想知道使用哪个来生成随机盐以确保密码安全性更好? $salt = sha1(openssl_random_pseudo_bytes(23)); 或 $seed
Golang 是否有与 PHP 相同或几乎相同的函数 openssl_random_pseudo_bytes()功能? 我需要它在 Golang 中生成伪随机字节串。 最佳答案 快速轻量级的伪随机字节
我需要替换 PHP 的 rand() 函数,该函数使用加密强度高的随机数生成器。 openssl_random_pseudo_bytes() 函数可让您访问强随机数生成器,但它会将其数据输出为字节字符
我需要根据其 description 重新实现 PHP 函数 openssl_random_pseudo_bytes 的行为: openssl_random_pseudo_bytes — Genera
我正在构建一个将拥有用户群的应用程序,并且我正处于保护登录的阶段。我对编程(和 PHP)还很陌生,但到目前为止我的努力都指向使用 Crypt() 和 Blowfish 散列盐。 在我继续之前,让我说明
我在尝试运行我的 PHP 单元测试时遇到此异常: Fatal error: Call to undefined function openssl_random_pseudo_bytes() 这是什么意
我需要在 PHP 中生成一次性 token 。我可以使用两个似乎做同样事情的函数:random_bytes和 openssl_random_pseudo_bytes .例如,使用 random_byt
我是一名优秀的程序员,十分优秀!