首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Go中生成固定长度的随机字符串?

如何在Go中生成固定长度的随机字符串?
EN

Stack Overflow用户
提问于 2014-04-06 17:22:54
回答 13查看 263.5K关注 0票数 373

我只想要一个随机字符串的字符(大写或小写),没有数字,在Go。完成此操作的最快、最简单的方法是什么?

EN

回答 13

Stack Overflow用户

发布于 2014-04-06 18:49:20

你可以只为它写代码。如果您希望在使用UTF-8编码时,所有字母都是单字节,则此代码可以稍微简单一些。

代码语言:javascript
复制
package main

import (
    "fmt"
    "time"
    "math/rand"
)

var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")

func randSeq(n int) string {
    b := make([]rune, n)
    for i := range b {
        b[i] = letters[rand.Intn(len(letters))]
    }
    return string(b)
}

func main() {
    rand.Seed(time.Now().UnixNano())

    fmt.Println(randSeq(10))
}
票数 172
EN

Stack Overflow用户

发布于 2016-02-15 07:30:35

使用uniuri包,它会生成加密安全的统一(无偏)字符串。

免责声明:我是包的作者

票数 30
EN

Stack Overflow用户

发布于 2021-01-07 15:02:07

为您提供简单解决方案,重复结果最少:

代码语言:javascript
复制
import (
    "math/rand"
    "time"
)

func randomString(length int) string {
    rand.Seed(time.Now().UnixNano())
    b := make([]byte, length)
    rand.Read(b)
    return fmt.Sprintf("%x", b)[:length]
}

PlayGround中查看它

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22892120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档