时间:2021-05-23
Go的随机数生成器是生成难以猜出的密码的一种很好的方法。
属性提供的随机数生成器。GO编程语言生成由ASCII字符组成的难以猜测的密码。尽管本文中提供的代码很容易阅读,但最好已经知道了解它的基本知识。如果您对编程语言不熟悉,要去参观学习,然后回到这里。
在进入实用程序和代码之前,请查看ASCII表的以下子集,如man ascii指挥:
30 40 50 60 70 80 90 100 110 120 ---------------------------------0: ( 2 < F P Z d n x1: ) 3 = G Q [ e o y2: * 4 > H R \ f p z3: ! + 5 ? I S ] g q {4: " , 6 @ J T ^ h r |5: # - 7 A K U _ i s }6: $ . 8 B L V ` j t ~7: % / 9 C M W a k u DEL8: & 0 : D N X b l v9: ' 1 ; E O Y c m w可打印的ASCII字符的十进制值从33到126不等;其他ASCII值不适合包含在密码中。因此,本文中提供的实用程序将在该范围内生成ASCII字符。
创建随机整数
第一个实用程序名为random.go,并生成驻留在给定范围内的指定数目的随机整数。最重要的部分random.go这一职能是:
randommin max return randIntnmaxmin min此函数使用RAND.In()go函数生成属于给定范围的随机整数。注意,rand.Intn()返回一个属于[0,n]的非负随机数;你可以在数学/RAND文档中找到数学/RAND包的文档。
random.go实用工具接受三个命令行参数:生成整数的最小值、最大值和将要生成的整数。
编译和执行random.go将创建这样的输出:
$ go build random.go$ ./randomUsage: ./random MIX MAX TOTAL$ ./random 1 3 102 2 1 2 2 1 1 2 2 1如果您希望在GO中生成更安全的随机数,请使用GO库的密码/ RAND包。
创建随机密码
第二个实用工具,randomPass.go生成随机密码。randomPass.go使用random()函数生成将使用以下GO代码转换为ASCII字符的随机数:
for {最小值为0而Max的价值是94的价值startChar是!,它是ASCII表中的第一个可打印字符(其十进制ASCII代码为33)因此,将生成的所有ASCII字符都位于!而在~字符,该字符的十进制ASCII代码为126.
因此,生成的每个随机数都大于min,小于MAX,并转换为ASCII字符。进程继续进行,直到生成的密码具有所需的长度。
randomPass.go实用工具接受一个(可选的)命令行参数,该参数定义生成的密码的长度。它的默认值是8,这是一个相当常见的密码长度。执行randomPass.go将生成以下类型的输出:
最后一个细节:不要忘了用seed值调用Rand.Seed()来初始化随机数生成器。如果始终使用相同的种子值,随机数生成器将创建相同的随机整数序列。
你可以同时找到random.go和randomPass.go在GitHub。您也可以在play.golang.org.希望这有所帮助
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在实际开发工作中经常需要用到随机数。如有些系统中创建用户后会给用户一个随机的初始化密码。这个密码由于是随机的,为此往往只有用户自己知道。他们获取了这个随机密码之
php生成一个随机的密码,方便快捷,可以随机生成安全可靠的密码。分享代码如下
pwgen生成的密码易于记忆且相当安全。从技术上来说,容易记忆的密码不会比随机生成的密码更加安全。但是,在大多数情况下,pwgen生成的密码已经足够安全,除了网
如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,文章整理了几种生成随机字符串的方法。方法一1、在33–126中
有时候我们需要在应用程序中使用随机生成用户名和密码,这样可以大大提高应用程序的安全,在PHP中生成随机用户名和密码可以使用mt_rand函数或者是rand函数,