javascript:评估用户输入的密码的强度

来自:http://outofmemory.cn/code-snippet/4655/pinggu-user-out-password-force

// Password strength meter
function passwordStrength(password1, username, password2) {
        var shortPass = 1,
                badPass = 2,
                goodPass = 3,
                strongPass = 4,
                mismatch = 5,
                symbolSize = 0,
                natLog, score;

        // password 1 != password 2
        if ((password1 != password2) && password2.length > 0)
                return mismatch
        //password < 4
        if (password1.length < 4)
                return shortPass
        //password1 == username
        if (password1.toLowerCase() == username.toLowerCase())
                return badPass;

        if (password1.match(/[0-9]/))
                symbolSize += 10;
        if (password1.match(/[a-z]/))
                symbolSize += 26;
        if (password1.match(/[A-Z]/))
                symbolSize += 26;
        if (password1.match(/[^a-zA-Z0-9]/))
                symbolSize += 31;

        natLog = Math.log(Math.pow(symbolSize, password1.length));
        score = natLog / Math.LN2;

        if (score < 40)
                return badPass
        if (score < 56)
                return goodPass

        return strongPass;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值