爬取某网站时,发现uuidv4.js中有个getRandomValues
var array = new Uint32Array(10); window.crypto.getRandomValues(array); console.log("Your lucky numbers:"); for (var i = 0; i < array.length; i++) { console.log(array[i]); }
以上函数详情详见https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues,
具体模拟实现
function random(min,max){return Math.floor(Math.random()*(max-min+1)+min)}; function getRandomValues(buf){ var min =0,max = 255; if (buf.length > 65536) { var e = new Error(); e.code = 22; e.message = 'Failed to execute \'getRandomValues\' : The ' + 'ArrayBufferView\'s byte length (' + buf.length + ') exceeds the ' +'number of bytes of entropy available via this API (65536).'; e.name = 'QuotaExceededError'; throw e; } if (buf instanceof Uint16Array) { max = 65535; } else if (buf instanceof Uint32Array) {max = 4294967295; } for (var element in buf) { buf[element] = random(min,max); } return buf;} buf = new Uint8Array(16); console.log(getRandomValues(buf))
JS中随机数产生类型为Uint8Array(16),所以直接就生成了
用的编辑软件为webstorm。
uuidv4()实现方法
function uuidv4() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }); } console.log(uuidv4())
代码来源https://blog.csdn.net/k_runtu/article/details/87713126,
uuid详解 https://www.cnblogs.com/xjnotxj/p/12162733.html 博客园真是大神云集~终于知道为什么好多网站都称为uuid了。
发现python有uuid的包 方法pip install uuid (用的pycharm),切记文件名不能为uuid.py~
import uuid print(uuid.uuid4())

浙公网安备 33010602011771号