Python具有创建十六进制UUID的功能,如下所示:
>>> import uuid
>>> uuid.uuid4().hex
'47be94c37e484e13ab04ed3c54a5b681'
- 在客户端JavaScript中是否可以使用相同的十六进制格式化方法?
- 有没有一种方法来“验证”客户端发送回来的UUID?例如,防止或注意到恶意用户发送的“1234abcdsh*t…”。
一个解决方案的想法是在前端随机生成每个32个字符,但我不知道hex UUID是否有什么特别之处,也不确定是否有一种好的方法来验证客户端是否发送了有效值(而不是一系列32个a)。
编辑:刚意识到“hex”格式没有任何特殊之处,只是缺少破折号。将保留该项目以防混淆其他人。
const uuidv4 = () => ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
或者const uuidv4hex = () => ([1e7,1e3,4e3,8e3,1e11].join('')).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
适合.hex
等价物:p - Jaromanda X8->f
(我想是这样)。 - Jaromanda X