gpt4 book ai didi

javascript - 如何在 Javascript 中生成加密安全的伪随机数?

转载 作者:行者123 更新时间:2023-11-30 10:59:13 26 4
gpt4 key购买 nike

Javascript 中是否有加密安全伪随机数生成器 (CSPRNG)?

我知道我可以使用以下方法生成伪随机数

Math.random();

function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}

在 Python 中,我会使用 secrets() 而不是 random()

import secrets alphabet = string.ascii_letters + string.digits password = ''.join(secrets.choice(alphabet) for i in range(8))

在 Go 中,我会使用 crypto.rand 包而不是 math/rand 包。

package main

import (
"bytes"
"crypto/rand"
"fmt"
)

func main() {
c := 10
b := make([]byte, c)
_, err := rand.Read(b)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Println(bytes.Equal(b, make([]byte, c)))

}

javascript 中是否有等效项?

最佳答案

在浏览器中,您可以查看 window.crypto.getRandomValues。查看详情 here .

const array = new Uint32Array(10);
window.crypto.getRandomValues(array);

在节点中,查看 crypto module .

const crypto = require('crypto');
crypto.randomBytes(20, (err, buffer) => {
const token = buffer.toString('hex');
console.log(token);
});

如果您对浏览器支持有顾虑,请考虑查看像 this one 这样的 npm 包。 .注意:我从未使用过这个,所以我不能保证。

关于javascript - 如何在 Javascript 中生成加密安全的伪随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58600148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com