public static function evaluatePwd(sPW:String):int
{
if (sPW.length <= 4)
return 0;
var Modes:int = 0;
for (var i:int = 0; i < sPW.length; i++)
{
Modes |= CharMode(sPW.charCodeAt(i));
}
return bitTotal(Modes);
function CharMode(iN:int):int
{
if (iN>=48 && iN <=57)
return 1;
if (iN>=65 && iN <=90)
return 2;
if (iN>=97 && iN <=122)
return 4;
else
return 8;
}
function bitTotal(num:int):*
{
var modes:int = 0;
for (var i:int = 0; i < 4; i++)
{
if (num & 1) modes ++;
num >>>= 1;
}
return modes;
}
}
public static function evaluatePwd(sPW:String):int
{
if (sPW.length <= 4)
return 0;
var Modes:int = 0;
for (var i:int = 0; i < sPW.length; i++)
{
Modes |= CharMode(sPW.charCodeAt(i));
}
return bitTotal(Modes);
function CharMode(iN:int):int
{
if (iN>=48 && iN <=57)
return 1;
if (iN>=65 && iN <=90)
return 2;
if (iN>=97 && iN <=122)
return 4;
else
return 8;
}
function bitTotal(num:int):*
{
var modes:int = 0;
for (var i:int = 0; i < 4; i++)
{
if (num & 1) modes ++;
num >>>= 1;
}
return modes;
}
}另外还有一个十分简单的算法
public static function evaluatePwd2(sPW:String):int
{
return sPW.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, “$1$2$3$4$5″).length;
}
public static function evaluatePwd2(sPW:String):int
{
return sPW.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, "$1$2$3$4$5").length;
}我们可以用多种图形化的界面甚至动画去展现密码的强度,举个简单的例子,例如我希望用户在输入密码后1秒内没有任何输入动作,则验证密码的强度,并且已进度条的形式展示
首先注册一个监听
pwdInputView.password.addEventListener(KeyboardEvent.KEY_UP, onKey);
pwdInputView.password.addEventListener(KeyboardEvent.KEY_UP, onKey);然后看看监听函数
private var oldText:String;
private function onKey(e:KeyboardEvent):void
{
if (oldText != pwdInputView.password.text && pwdInputView.password.text.length > 5)
{
oldText = pwdInputView.password.text;
TweenLite.killTweensOf(updateStrengthView, false);
TweenLite.delayedCall(1, updateStrengthView);
}
}
private var oldText:String;
private function onKey(e:KeyboardEvent):void
{
if (oldText != pwdInputView.password.text && pwdInputView.password.text.length > 5)
{
oldText = pwdInputView.password.text;
TweenLite.killTweensOf(updateStrengthView, false);
TweenLite.delayedCall(1, updateStrengthView);
}
}首先定义一个oldText成员,用于记录上次输入的密码,如果当前密码和上次密码不相同并且长度大于5,开始执行操作。我这里用了TweenLite作为计时器,1秒后将执行强度判断,如果发现用户在1秒内再次有输入操作,则销毁当前TweenLite。
再看看如何用视图来展示密码强度,这里不多作解释了,只是一个简单的动画效果。
private function updateStrengthView():void
{
var toWidth:Number = pwdInputView.strengthCanvas.width * CheckStrong.evaluatePwd(pwdInputView.password.text) * .25;
TweenLite.to(pwdInputView.maskCanvas, 1.5, {width:toWidth, ease:Bounce.easeOut, overwrite:false});
}
private function updateStrengthView():void
{
var toWidth:Number = pwdInputView.strengthCanvas.width * CheckStrong.evaluatePwd(pwdInputView.password.text) * .25;
TweenLite.to(pwdInputView.maskCanvas, 1.5, {width:toWidth, ease:Bounce.easeOut, overwrite:false});
}
http://blog.youmila.com/?p=24
分享到:
相关推荐
现在需要升级密码强度的验证,以前的验证比较简单,现在已经不能满足需求了,现在需要可灵活变化并有多级别可配置选择的一个密码强度验证,所以就设计了下面这个东东。在设计前也参考了下比较成熟的强度规则,...
输入密码:密码强度: 弱 中 强 代码如下: 代码如下:<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %> <!DOCTYPE html PUBLIC “-//W3C...
本文实例为大家分享了js实现密码输入强度验证的具体代码,供大家参考,具体内容如下 需求: 1.需要对用户输入的密码进行验证,验证的级别分为强中弱,如果输入的密码强度少于6时,则不会验证,只有密码强度在6-20时...
最近写了个密码强度验证的函数,主要验证以下内容 1、密码最小和最大长度 2、连续字符串出现的次数 3、字符连续出现的次数 4、禁止特定的字符串作为密码 5、密码字符串的组合强度要求,必须含有大小写字母,必须含有...
一种使用评价功能显示密码强度的验证插件自定义方法。显示的文本可以被本地化。 您可以简单地自定义强度显示的外观、本地化消息显示,并集成到已有的表单中。 该插件目前版本是 1.0.0。 使用方式 如需使用 Password ...
我们来看看如果使用Knockout更简单的来实现密码强度的验证。 原有代码请查看: 代码如下: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ...
ASP.NET MVC5网站开发之添加\删除\重置密码\修改密码\列表浏览管理员篇2(六)ASP.NET MVC5网站开发用户修改资料和密码(六)asp.net利用cookie保存用户密码实现自动登录的方法解读ASP.NET密码强度验证代码实例分享...
2、输入密码时提示密码强度和验证2次密码输入是否一样。 3、注册时验证数据库联系邮箱是否存在。 4、注册时验证用户输入的验证码和系统产生的验证码是否一致。 5、对输入中文验证 6、QQ号码验证 7、身份证号码验证 ...
3、可以指定产品编号,以便用户可以管理多个文件,以免混乱 4、您可以设置提示语,以便告知用户通过何种途径与您联系获得播放密码 5、本系统也可以结合网络应用,通过网络向客户发放播放密码、会员验证等...
可以加密各种视频音频格式文件(wmv, avi, asf, mpg, rm, rmvb, mp4, flv, mp3, vob, mov, mkv, mpeg, dat等等其他各种音频视频格式),加密后的文件可以通过离线方式授权播放,也可以通过网络方式授权播放;...
● password_verify():验证密码是否和哈希匹配; ● password_needs_rehash():检查给定的哈希是否匹配给定的选项; ● password_get_info():返回指定哈希的相关信息。 1、password_hash(string password, int ...
注: TCP/IP 设置完成后请用 PING 命令验证网络是否连通,如网络不通请尝试检查相应网络设备、重新安装 TCP/IP 协议等手段来解决问题。 2.3产品安装 教师机的安装 1. 插入安装光盘后会自动运行安装程序,进入...