·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3密码强度的验证操作(附源代码)

时间:2017-06-09 10:37酷播
[AS3]as3密码强度的验证操作(附源代码),as3密码,as3密码验证

[AS3]as3密码强度的验证操作(附源代码)

  1. public static function evaluatepwd(spw:string):int 
  2. if (spw.length <= 4) 
  3. return 0; 
  4. var modes:int = 0
  5. for (var i:int = 0; i < spw.length; i++) 
  6. modes |= charmode(spw.charcodeat(i)); 
  7.  
  8. return bittotal(modes); 
  9.  
  10. function charmode(in:int):int 
  11. if (in>=48 && in <=57) 
  12. return 1; 
  13. if (in>=65 && in <=90) 
  14. return 2; 
  15. if (in>=97 && in <=122) 
  16. return 4; 
  17. else 
  18. return 8; 
  19.  
  20. function bittotal(num:int):* 
  21. var modes:int = 0
  22. for (var i:int = 0; i < 4; i++) 
  23. if (num & 1) modes ++; 
  24. num >>>= 1; 
  25. return modes; 
  26.  
  27. public static function evaluatepwd(spw:string):int 
  28.   { 
  29.    if (spw.length <= 4) 
  30.     return 0; 
  31.    var modes:int = 0
  32.    for (var i:int = 0; i < spw.length; i++) 
  33.    { 
  34.     modes |= charmode(spw.charcodeat(i)); 
  35.    } 
  36.  
  37.    return bittotal(modes); 
  38.  
  39.    function charmode(in:int):int 
  40.    { 
  41.     if (in>=48 && in <=57) 
  42.      return 1; 
  43.     if (in>=65 && in <=90) 
  44.      return 2; 
  45.     if (in>=97 && in <=122) 
  46.      return 4; 
  47.     else 
  48.      return 8; 
  49.    } 
  50.  
  51.    function bittotal(num:int):* 
  52.    { 
  53.     var modes:int = 0
  54.     for (var i:int = 0; i < 4; i++) 
  55.     { 
  56.      if (num & 1) modes ++; 
  57.      num >>>= 1; 
  58.     } 
  59.     return modes; 
  60.    } 
  61.   } 

另外还有一个十分简单的算法

  1. public static function evaluatepwd2(spw:string):int 
  2. return spw.replace(/^(?:([a-z])|([a-z])|([0-9])|(.)){5,}|(.)+$/g, “$1$2$3$4$5′).length; 
  3. public static function evaluatepwd2(spw:string):int 
  4.   { 
  5.    return spw.replace(/^(?:([a-z])|([a-z])|([0-9])|(.)){5,}|(.)+$/g, "$1$2$3$4$5").length; 
  6.   } 

我们可以用多种图形化的界面甚至动画去展现密码的强度,举个简单的例子,例如我希望用户在输入密码后1秒内没有任何输入动作,则验证密码的强度,并且已进度条的形式展示

首先注册一个监听

  1. pwdinputview.password.addeventlistener(keyboardevent.key_up, onkey); 
  2. pwdinputview.password.addeventlistener(keyboardevent.key_up, onkey);然后看看监听函数 
  3.  
  4. private var oldtext:string; 
  5. private function onkey(e:keyboardevent):void 
  6. if (oldtext != pwdinputview.password.text && pwdinputview.password.text.length > 5) 
  7. oldtext = pwdinputview.password.text; 
  8. tweenlite.killtweensof(updatestrengthview, false); 
  9. tweenlite.delayedcall(1, updatestrengthview); 
  10. private var oldtext:string; 
  11.  
  12.   private function onkey(e:keyboardevent):void 
  13.   { 
  14.    if (oldtext != pwdinputview.password.text && pwdinputview.password.text.length > 5) 
  15.    { 
  16.     oldtext = pwdinputview.password.text; 
  17.     tweenlite.killtweensof(updatestrengthview, false); 
  18.     tweenlite.delayedcall(1, updatestrengthview); 
  19.    } 
  20.   } 

 [AS3]as3密码强度的验证操作(附源代码)

首先定义一个oldtext成员,用于记录上次输入的密码,如果当前密码和上次密码不相同并且长度大于5,开始执行操作。我这里用了tweenlite作为计时器,1秒后将执行强度判断,如果发现用户在1秒内再次有输入操作,则销毁当前tweenlite。

再看看如何用视图来展示密码强度,这里不多作解释了,只是一个简单的动画效果。

  1. private function updatestrengthview():void 
  2. var towidth:number = pwdinputview.strengthcanvas.width * checkstrong.evaluatepwd(pwdinputview.password.text) * .25; 
  3. tweenlite.to(pwdinputview.maskcanvas, 1.5, {width:towidth, ease:bounce.easeout, overwrite:false}); 
  4. private function updatestrengthview():void 
  5.   { 
  6.    var towidth:number = pwdinputview.strengthcanvas.width * checkstrong.evaluatepwd(pwdinputview.password.text) * .25; 
  7.    tweenlite.to(pwdinputview.maskcanvas, 1.5, {width:towidth, ease:bounce.easeout, overwrite:false}); 
  8.   } 

 [AS3]as3密码强度的验证操作(附源代码)

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器