登录
首页 >  Golang >  Go问答

生成随机字符串无需时间限制?

来源:stackoverflow

时间:2024-03-04 16:45:24 158浏览 收藏

大家好,今天本人给大家带来文章《生成随机字符串无需时间限制?》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我知道如何使用 Runes 和种子 rand.Init 和 time.UnixNano() 在 go 中生成随机字符串。我的问题是,是否可以(使用 stdlib)在不使用当前时间戳(安全)的情况下播种 rand?

此外,我问是不是仅仅依靠时间来为敏感操作生成随机字符串不安全/漏洞?


解决方案


对于敏感操作,请使用 crypto/rand 而不是 math/rand

包 [crypto/] rand 实现了一个加密安全的随机数生成器。

请注意,您不需要(也不能)种子 crypto/rand

您可以用任何东西作为种子,它只需要一个整数。时间是常用的,因为它会变化,并且没有很多来源可以提供不恒定的良好随机种子 - 如果您使用相同的种子,您将获得相同的值序列,因此通常您想要变化的东西.

不安全吗?绝对地!如果您需要安全生成随机数,则必须使用crypto/randhttps://golang.org/pkg/crypto/rand/

crypto/rand 不提供播种方法,因为它是使用系统的加密强度强的随机数生成器进行播种的。

到这里,我们也就讲完了《生成随机字符串无需时间限制?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>