溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Golang隨機(jī)值生成算法

發(fā)布時間:2020-07-04 08:07:37 來源:網(wǎng)絡(luò) 閱讀:457 作者:dccw 欄目:編程語言
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))
}
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI