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

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

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

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

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

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

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

我们可以用多种图形化的界面甚至动画去展现密码的强度,举个简单的例子,例如我希望用户在输入密码后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. { 
  7. if (oldtext != pwdinputview.password.text && pwdinputview.password.text.length > 5) 
  8. { 
  9. oldtext = pwdinputview.password.text; 
  10. tweenlite.killtweensof(updatestrengthview, false); 
  11. tweenlite.delayedcall(1, updatestrengthview); 
  12. } 
  13. } 
  14. private var oldtext:string; 
  15.  
  16.   private function onkey(e:keyboardevent):void 
  17.   { 
  18.    if (oldtext != pwdinputview.password.text && pwdinputview.password.text.length > 5) 
  19.    { 
  20.     oldtext = pwdinputview.password.text; 
  21.     tweenlite.killtweensof(updatestrengthview, false); 
  22.     tweenlite.delayedcall(1, updatestrengthview); 
  23.    } 
  24.   } 

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

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

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

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

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

热门文章推荐

请稍候...

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

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