继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Golang随机值生成算法

holdtom
关注TA
已关注
手记 1842
粉丝 240
获赞 991


package main

import (

    "crypto/rand"

    "fmt"

)

var strstr = []byte("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")

func GetUID() string {

    data := make([]byte, 16)

    _, err := rand.Read(data)

    if err != nil {

        panic(err)

    }

    uuid := fmt.Sprintf("%X-%X-%X-%X-%X", data[0:4], data[4:6], data[6:8], data[8:10], data[10:])

    return uuid

}

func GetString(size int) string {

    data := make([]byte, size)

    out := make([]byte, size)

    buffer := len(strstr)

    _, err := rand.Read(data)

    if err != nil {

        panic(err)

    }

    for id, key := range data {

        x := byte(int(key) % buffer)

        out[id] = strstr[x]

    }

    return string(out)

}

func main(){

    fmt.Println(GetUID())

    fmt.Println(GetString(8))

}

©著作权归作者所有:来自51CTO博客作者dccw的原创作品,如需转载,请注明出处,否则将追究法律责任


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP