我想生成一个随机字符串,该字符串必须包含 a-z 中的 5 个字母和 3 个数字。
我怎样才能用 JavaScript 做到这一点?
我有以下脚本,但它不符合我的要求。
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var string_length = 8;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
强制使用固定数量的字符是bad主意。它不会提高密码的质量。更糟糕的是,它减少了可能的密码数量,从而使暴力破解变得更加容易。
要生成由字母数字字符组成的随机单词,请使用:
var randomstring = Math.random().toString(36).slice(-8);
它是如何工作的?
Math.random() // Generate random number, eg: 0.123456
.toString(36) // Convert to base-36 : "0.4fzyo82mvyr"
.slice(-8);// Cut off last 8 characters : "yo82mvyr"
文档为Number.prototype.toString https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString and string.prototype.slice https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/slice方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)