避免悲剧 JavaScript密码生成器

我为大家准备了一个密码生成工具,有0-9和a-k的英文字母组成,数字是乱序排列。字母随机一个替换掉一个数字,生成一个长度为10的密码。

 
 
 
  1.         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
  2.     
  3.     
  4.         
  5.         
  6.     
  7.     
  8.     
  9.      
  10.     
  11.     
    
  •     
  • void function(window,doc,undefined){    
  •     var array=[],text='abcdefghijk',key,password='',btn=doc.getElementById('strat'),textarea=doc.getElementById('password');    
  •      
  •     function unorderedArray(array){    
  •         if(({}).toString.call(array).indexOf('Array')===-1) return;    
  •         var arr=[],value=array.toString();    
  •         arr=array.sort(function(){return Math.random()>0.5?-1:1;});    
  •         (arr.toString()===value) && arguments.callee(array);    
  •         return arr;    
  •     }    
  •      
  •      
  •     btn.onclick=function(){    
  •         key=Math.random().toFixed(1) * 10-1;    
  •         array=[0,1,2,3,4,5,6,7,8,9];    
  •         password=unorderedArray(array);    
  •         password[key]=text[key];    
  •         textarea.innerHTML=password.join('');    
  •     }    
  • }(window,document);    
  •      
  •      
  •     //console.log(unorderedArray(a));    
  •     
  •      
  •     
  •    
  • 怎样乱序排列数组,本人数学比较烂。搜索了一下给array的sort传入一个这样的函数。

    sort真是强大啊。

     
     
     
    1. function unorderedArray(array){  
    2.         if(({}).toString.call(array).indexOf('Array')===-1) return;  
    3.         var arr=[],value=array.toString();  
    4.         arr=array.sort(function(){return Math.random()>0.5?-1:1;});  
    5.         (arr.toString()===value) && arguments.callee(array);  
    6.         return arr;  

    在用这个方法的时候要避免生成的数组和传入的数组一样,颇废了点功夫,因为数组是复杂类型,有修改所有的都会有变化。所以用一个变量去缓存了传入的数组的值value=array.toString(),然后我生成的数组的值比较一下如果相对就递归一次。保证生成的数组不是顺序的。

    用下面的代码生成一个0-9的随机数序号

     
     
     
    1. Math.random().toFixed(1) * 10-1; 

    用这个序号去获得a-k的一个字母,用这个字母去替换数组中序号相应位置的数字。

    在用数组的join方法把获得的数组字符串化

     
     
     
    1. password.join(''); 

    获得一个密钥。

    原文:http://www.cnblogs.com/enix/archive/2011/12/22/2297913.html

    【编辑推荐】

    1. 大型JavaScript应用程序架构模式
    2.  非常全面的实用JavaScript开发工具列表
    3. JavaScript学习笔记 有问有答
    4. JavaScript函数式编程
    5. JavaScript DOM编程手册

    当前名称:避免悲剧 JavaScript密码生成器
    地址分享:http://www.hantingmc.com/qtweb/news11/436111.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

    猜你还喜欢下面的内容

    静态网站知识

    同城分类信息