Javascript генерирует случайный шестнадцатеричный - PullRequest
0 голосов
/ 18 марта 2020

Как можно случайным образом сгенерировать шестнадцатеричный код длиной 160 битов (20 байтов) в виде строки (такой же длины, как у Git хешей фиксации) для использования в качестве уникального идентификатора?

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Это должно сработать:

let characters = "0123456789abcdef"
let str = ""
for(let i = 0; i < 40; i++){
    str += characters[Math.floor(Math.random() * 16)]
}
console.log(str)
1 голос
/ 18 марта 2020

В современном браузере есть cyrpto.getRandomValues, поддержка довольно хорошая. -> https://caniuse.com/#feat = getrandomvalues ​​

Таким образом, вы можете сделать это ->

const a = [...crypto.getRandomValues(new Uint8Array(20))].map(m=>('0'+m.toString(16)).slice(-2)).join('');

console.log(a);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...