crypto/rand 生成的随机数可以编码成纯数字字符串吗?

2023-09-18 20:34:23 +08:00
 dyllen

"crypto/rand.Read"生成的随机数可以编码成纯数字字符串吗?有没有现成的官方方法?

1092 次点击
所在节点    Go 编程语言
3 条回复
yang0327519
2023-09-18 20:36:52 +08:00
package main

import (
"crypto/rand"
"fmt"
)

func main() {
n := 10 // 生成 10 个随机字节
buf := make([]byte, n)

_, err := rand.Read(buf)
if err != nil {
panic(err)
}

result := ""
for _, b := range buf {
result += fmt.Sprintf("%03d", b) // 将每个字节转换为三位数字的字符串
}

fmt.Println(result) // 输出纯数字字符串
}
body007
2023-09-19 09:12:27 +08:00
package main

import (
"crypto/rand"
"fmt"
"math/big"
)

func main() {
err := test()
if err != nil {
panic(err)
}
}

func test() error {
limit := big.NewInt(10000000000) // 指定最大值,[0, max)

num, err := rand.Int(rand.Reader, limit)
if err != nil {
return err
}

fmt.Println(num.String())
return nil
}
dyllen
2023-09-19 10:25:18 +08:00
@yang0327519
@body007 都可以,需要可控固定长度。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/974975

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX