如何在jquery中获取随机字节并将其转换为十六进制

dtcbnfnu  于 5个月前  发布在  jQuery
关注(0)|答案(1)|浏览(51)

我想把随机字节转换成十六进制。
我之前在php中使用它作为数据库表的id。
如果在php中,

function rand_id(){
    return bin2hex(random_bytes(3));
}

字符串
如何在jquery中实现

zpjtge22

zpjtge221#

以下将在客户端工作,但不会以任何方式加密安全。

function random_hexadecimal(length) {
    var result = '';
    var characters = 'abcdef0123456789';
    var charactersLength = characters.length;
    for (i = 0; i < length; i++) result += characters.charAt(Math.floor(Math.random() * charactersLength));
    return result;
}

字符串
或者对于一行程序(或者更短更干净的解决方案):

const size = 20;
let id = [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join('');

// "6b6a3edaf6f1cbaaf107"


对于服务器端,你可以使用以下方法,它在密码学上是安全的。

const crypto = require("crypto");
let id = crypto.randomBytes(20).toString('hex');

// "bb5dc8842ca31d4603d6aa11448d1654"

相关问题