js实现随机生成16位的密钥——基础积累

最近在写后台管理系统,遇到一个需求,需要自动生成一个随机分配的16位的密钥:

在这里插入图片描述
密钥一般都是由字母 数字 特殊字符等组成的,因此可以通过下面的方法来自动生成密钥。

getmm(num=16) {
    
    
  var amm = ["!", "@", "#", "$", "%", "&", "*", "(", ")", "_",1,2,3,4,5,6,7,8,9];
  var tmp = Math.floor(Math.random() * num);
  var s = tmp;
  s = s + amm[tmp];
  for (let i = 0; i < 7; i++) {
    
    
    tmp = Math.floor(Math.random() * 26);
    s = s + String.fromCharCode(65 + tmp);
  }
  for (let i = 0; i < 7; i++) {
    
    
    tmp = Math.floor(Math.random() * 26);
    s = s + String.fromCharCode(97 + tmp);
  }
  return s;
},

通过上面的方法,则可以直接生成16位的密钥了,函数的入参num在生成随机数的时候是有用到的,但是在两次for循环时并没有用到,这样时不太好的,如果想要生成其它位数的密钥,则只更改num是不太对的,需要将for循环中的数字也一并修改掉才行。

此时可以将上面的函数改为:

getmm(num=16) {
    
    
  var amm = ["!", "@", "#", "$", "%", "&", "*", "(", ")", "_",1,2,3,4,5,6,7,8,9];
  var tmp = Math.floor(Math.random() * num);
  var s = tmp;
  s = s + amm[tmp];
  for (let i = 0; i < Math.floor(num/2)-1; i++) {
    
    
    tmp = Math.floor(Math.random() * 26);
    s = s + String.fromCharCode(65 + tmp);
  }
  for (let i = 0; i < (num-Math.floor(num/2)-1); i++) {
    
    
    tmp = Math.floor(Math.random() * 26);
    s = s + String.fromCharCode(97 + tmp);
  }
  return s;
},

完成!!!

猜你喜欢

转载自blog.csdn.net/yehaocheng520/article/details/125367776