• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在Go中创建随机的安全密码

    Go的随机数生成器是生成难以猜出的密码的一种很好的方法。

    属性提供的随机数生成器。GO编程语言生成由ASCII字符组成的难以猜测的密码。尽管本文中提供的代码很容易阅读,但最好已经知道了解它的基本知识。如果您对编程语言不熟悉,要去参观学习,然后回到这里。

    在进入实用程序和代码之前,请查看ASCII表的以下子集,如man ascii指挥:

     30 40 50 60 70 80 90 100 110 120
     ---------------------------------
    0: ( 2  F P Z d n x
    1: ) 3 = G Q [ e o y
    2: * 4 > H R \ f p z
    3: ! + 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 DEL
    8:  0 : D N X b l v
    9: ' 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
    $ ./random
    Usage: ./random MIX MAX TOTAL
    $ ./random 1 3 10
    2 2 1 2 2 1 1 2 2 1

    如果您希望在GO中生成更安全的随机数,请使用GO库的密码/ RAND包。

    创建随机密码

    第二个实用工具,randomPass.go生成随机密码。randomPass.go使用random()函数生成将使用以下GO代码转换为ASCII字符的随机数:

    for {
    myRand := random(MIN, MAX)
    newChar := string(startChar[0] + byte(myRand))
    fmt.Print(newChar)
    if i == LENGTH {
    break
    }
    i++ }

    最小值为0而Max的价值是94的价值startChar是!,它是ASCII表中的第一个可打印字符(其十进制ASCII代码为33)因此,将生成的所有ASCII字符都位于!而在~字符,该字符的十进制ASCII代码为126.

    因此,生成的每个随机数都大于min,小于MAX,并转换为ASCII字符。进程继续进行,直到生成的密码具有所需的长度。
    randomPass.go实用工具接受一个(可选的)命令行参数,该参数定义生成的密码的长度。它的默认值是8,这是一个相当常见的密码长度。执行randomPass.go将生成以下类型的输出:

    $ go run randomPass.go 1
    Z
    $ go run randomPass.go 10
    #Cw^a#IwkT
    $ go run randomPass.go
    Using default values!
    [PP8@'Ci

    最后一个细节:不要忘了用seed值调用Rand.Seed()来初始化随机数生成器。如果始终使用相同的种子值,随机数生成器将创建相同的随机整数序列。

    你可以同时找到random.go和randomPass.go在GitHub。您也可以在play.golang.org.希望这有所帮助

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • Go语言实现互斥锁、随机数、time、List
    • GoLang 中的随机数的示例代码
    • Go语言排序算法之插入排序与生成随机数详解
    • 利用Golang生成整数随机数方法示例
    • Golang编程实现生成n个从a到b不重复随机数的方法
    • go语言返回1-99之间随机数的方法
    • Go语言生成随机数的方法
    上一篇:在Go中复制文件最流行的3种方法
    下一篇:在Go中构建并发TCP服务器
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    在Go中创建随机的安全密码 在,中,创建,随机,的,安全,