如何使用 window.crypto 属性 正确生成随机密码?
How to properly generate a random password with the window.crypto property?
Math.floor(Math.random() * 100)
或 Math.ceil(Math.random() * 100)
生成随机数的方法不是最安全的加密方法。我想在随机密码应用程序中使用此方法,我正在尝试使用 window.crypto 属性。这是我设置的内容,但似乎 return 是一个空值,我不确定自己做错了什么。
const array = new Uint32Array(1);
window.crypto.getRandomValues(array);
let chars = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let pwordLength = 12;
let password = '';
for (let i = 0; i <= pwordLength; i++) {
let randomNumber = array * chars.length;
password += chars.substring(randomNumber, randomNumber + 1);
}
console.log(`Password is ${password}`);
您可以生成与 chars
列表长度相同的 Uint32Array
。然后遍历它们以获得随机值。通过使用 %
我们可以确保我们永远不会超过给定的长度 (remainder operator)
let chars = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let pwordLength = 12;
let password = '';
const array = new Uint32Array(chars.length);
window.crypto.getRandomValues(array);
for (let i = 0; i < pwordLength; i++) {
password += chars[array[i] % chars.length];
}
console.log(`Password is ${password}`);
Math.floor(Math.random() * 100)
或 Math.ceil(Math.random() * 100)
生成随机数的方法不是最安全的加密方法。我想在随机密码应用程序中使用此方法,我正在尝试使用 window.crypto 属性。这是我设置的内容,但似乎 return 是一个空值,我不确定自己做错了什么。
const array = new Uint32Array(1);
window.crypto.getRandomValues(array);
let chars = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let pwordLength = 12;
let password = '';
for (let i = 0; i <= pwordLength; i++) {
let randomNumber = array * chars.length;
password += chars.substring(randomNumber, randomNumber + 1);
}
console.log(`Password is ${password}`);
您可以生成与 chars
列表长度相同的 Uint32Array
。然后遍历它们以获得随机值。通过使用 %
我们可以确保我们永远不会超过给定的长度 (remainder operator)
let chars = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let pwordLength = 12;
let password = '';
const array = new Uint32Array(chars.length);
window.crypto.getRandomValues(array);
for (let i = 0; i < pwordLength; i++) {
password += chars[array[i] % chars.length];
}
console.log(`Password is ${password}`);