ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript パスワード強度検証ルール、スコアリング、および検証 (フロントエンド コードが指定され、バックエンド コードは強度ルールに従って変換できます)_JavaScript スキル

JavaScript パスワード強度検証ルール、スコアリング、および検証 (フロントエンド コードが指定され、バックエンド コードは強度ルールに従って変換できます)_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:27:011063ブラウズ

前書き:

パスワードの強度は非常に一般的な機能であり、重要なのはこの強度ルールをどのように定式化するかです。次に、パスワード強度の検証をアップグレードする必要があります。以前の検証は比較的単純でしたが、現在ではニーズを満たすことができなくなり、柔軟に変更でき、複数のレベルの構成可能なオプションを持つパスワード強度の検証が必要になりました。以下のもの。設計前に、類似したより成熟した強度ルールも参照しましたが、これらはすべてスコアリング メカニズムを採用してパスワード強度ルールを制御するため、高度に構成可能で柔軟性が高くなります。当初はこれを直接使用したかったのですが、比較的古いもので、会社の開発ニーズに適していないものもあったため、誰も更新したり、新しいコードを書いたりする人がいなかったので、ルールとコードを設計しました。自分でコードを書きました。

実装:

原則:
得点メカニズムを使用して、得点は 3 つのカテゴリー (基本ポイント、ボーナス ポイント、減算ポイント) に分けられ、次に基本ポイントが計算されます。ボーナスポイントが計算され、最後に減点されるポイントを差し引いて最終的な合計スコアが得られます。

ルール:
パスワードの入力タイプ (文字、大文字、小文字、特殊文字)。
基本ポイントは、パスワードの長さ、それぞれ 1 ポイント、18 文字を超える長さは 18 ポイントです。パスワードに入力タイプが含まれる場合、基本ポイントは 4 ポイント増加します。
ボーナスポイント: パスワードの入力種類の合計が2種類以上の場合は2ポイントが加算され、合計が5種類以上の場合は4ポイントが加算されます。
減点の対象となるのは、同じ種類のキャラクターが連続して出現する場合、1回の繰り返しにつき1点減点されます。
合計スコアは 50 点です。
0~10点:不適格(弱い)
11~20点:普通
21~30点:中
31~40点:強い
41~50点:安全
*スコア範囲は自由に調整し、一致させることができます。実際、スコア ルール全体は必要に応じて変更できます。

コード:

コードをコピーします。 🎜> コードは次のとおりです。
functionpasswordGrade(pwd) {
var core = 0
var regexArr = ['[0-9] ', '[a-z]' , '[\W_]'];
varrepeatCount = 0;
var prevChar = ''; len = pwd.length;
score = len > 18 ? 18 : len;
for (var i = 0, num = regexArr.length; i //ボーナス ポイント
for (var i = 0, num = regexArr.length; i
if (pwd.match(eval('/' regexArr[i] '/g')) && pwd.match(eval('/' regexArr[i] '/g') )).length >= 2) スコア = 2;
if (pwd.match(eval('/' regexArr[i] '/g')) && pwd.match(eval('/' regexArr[i) ] '/g')) .length >= 5) スコア = 2;
}
//演繹
for (var i = 0, num = pwd.length; i if ( pwd.charAt(i) == prevChar)repeatCount ;
else prevChar = pwd.charAt(i);
スコア -=repeatCount * 1;スコア;
}


採点例:
1111=7 点
1@dA=20 点
111111=9 点
abcdef1=19 点
abcd12=18 ポイント
abc123=18 ポイント
ab123A=22 ポイント
aA12j@=26 ポイント
aasdfkjjsjjj=16 ポイント
111111111dsfskjjkjeh=25 ポイント
1111dsfskjjkjeh=25 ポイント
123 1kb#4ktSF!T@ s^j#hkWH=50 ポイント
skhk3293ks=24 ポイント
sfh#4hHdk=29 ポイント
bure12#sk=27 ポイント
a@s@dk23= 26 ポイント
bruceLi@09kt =34 ポイント
ce@Li1=24 ポイント
終了
以上です。この採点ルールについて議論することは歓迎です。独自のルールやコードを直接提供することもできます。全員の調査とコミュニケーションを促進するには、コードを継続的に保守し、更新する必要があります。そうすることで、私たちは前任者のスクリプトに基づいて前進し続けることができます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。