웹 개발 은 Angular 를 사용 하여 사용자 암호 강도 판별 을 실현 하 는 방법
사용자 암호 합 법 조건:
1,8~16 글자
2.숫자,자모 와""만 포함 할 수 있 습 니 다."(불법 특수 문자 포함 불가)
3.숫자,자모 와""."적어도 두 가 지 를 포함한다.
실현 과정:
길이 측정-주:중국어 와 영어,중국어 두 바이트,영어 한 바 이 트 를 구분 하려 면 비밀 번 호 를 입력 할 때 중국 어 를 입력 할 수 없 지만 사용자 이름 의 사용 을 검사 하려 면 중 영 어 를 구분 해 야 합 니 다.
// :
function GetStrLength(strData)
{
if(!strData){
return 0;
}
var length = 0;
for (var i=0; i<strData.length; i++) {
var char = strData.charCodeAt(i);
// 1
if ((char >= 0x0001 && char <= 0x007e) || (0xff60 <= char && char <= 0xff9f))
{
length++;
}
else
{
length+=2;
}
}
return length;
}
알파벳 포함 여부 확인:
function isIncludeLiter(strData)
{ if(!strData){
return false;
}
var reg = /[a-z]/i;
if (!reg.test(strData))
{
return false;
}
return true;
}
숫자 포함 여부 확인:
function isIncludeNumber(strData)
{
if(!strData){
return false;
}
var reg = /[0-9]/;
if (!reg.test(strData))
{
return false;
}
return true;
}
특수 문자 포함 여부 확인:모든 특수 문자 포함
function isIncludeSChar(strData)
{
if(strData == ""){
return false;
}
//
var reg = new RegExp("[`~!@#$^&*%()_+=|{}':;',\\-\\[\\].<>/?~!@#¥……&*()――|{}【】‘;:”“'。,、?]")
return reg.test(strData);
}
지정 한 특수 문자 의 개 수 를 통계 합 니 다.여 기 는 특수 문자 만 통계 합 니 다."-"."
function calcCharCount(strData) {
var matchResult = {
lineCounts: 0, //'-'
dotCounts: 0 // '.'
};
if(!strData){
return JSON.stringify(matchResult);
}
var lineChar = "-", dotChar = "\\."; //
var lineRegex = new RegExp(lineChar, 'g'), dotRegex = new RegExp(dotChar, 'g'); // g
var lineResult = strData.match(lineRegex);
matchResult.lineCounts = !lineResult ? 0 : lineResult.length;
var dotResult = strData.match(dotRegex);
matchResult.dotCounts = !dotResult ? 0 : dotResult.length;
return JSON.stringify(matchResult);
}
암호 강도 판단 조건:약 한 C 암호 에는 숫자,자모 만 포함 되 어 있 습 니 다.
중 C 암호 에는 숫자,알파벳,모든 특수 문자 가 포함 되 어 있 습 니 다.
강 한 C 구령 에는 숫자,자모 와 여러 개의 특수 문자 가 포함 되 어 있다.
코드 가 많 습 니 다.직접 전체 붙 여 넣 기 복사:
var len = GetStrLen($scope.newPswd); //
var matchResult = JSON.parse(calcCharCount($scope.newPswd)); // '-' '.'
// 1
$scope.newPswdValidOne = (len >= 8 && len <= 16);
// 2
$scope.newPswdValidTwo = !isIncludeSChar($scope.newPswd);
// '-' '.'
$scope.newPswdHasSChar = $scope.newPswdValidTwo && (matchResult.lineCounts > 0 || matchResult.dotCounts > 0);
//
$scope.newPswdHasLiter = isIncludeLiter($scope.newPswd);
//
$scope.newPswdHasNumber = isIncludeNum($scope.newPswd);
// 3
$scope.newPswdValidThree = ($scope.newPswdHasNumber && $scope.newPswdHasLiter) || //
($scope.newPswdHasNumber && $scope.newPswdHasSChar) || //
($scope.newPswdHasLiter && $scope.pswdValidChars) || //
($scope.newPswdHasLiter && $scope.newPswdHasNumber && $scope.pswdValidChars); // 、
//
$scope.newPswdValid = $scope.newPswdValidOne && $scope.newPswdValidTwo && $scope.newPswdValidThree;
//
// 3. 、 ,
if ($scope.newPswdValid && $scope.newPswdHasNumber && $scope.newPswdHasLiter && (matchResult.lineCounts > 0 && matchResult.dotCounts > 0)) {
$scope.newPswdRank = 3;
$scope.newPswdRankText = " ";
}
// 2. 、 , ;
else if ($scope.newPswdValid && $scope.newPswdHasNumber && $scope.newPswdHasLiter && (matchResult.lineCounts > 0 || matchResult.dotCounts > 0)) {
$scope.newPswdRank = 2;
$scope.newPswdRankText = " ";
}
// 1. 、 , ;
else if ($scope.newPswdValid && $scope.newPswdHasNumber && $scope.newPswdHasLiter) {
$scope.newPswdRank = 1;
$scope.newPswdRankText = " ";
}
//
else {
$scope.newPswdRank = 0;
$scope.newPswdRankText = "";
}
페이지 구현 효 과 는 다음 과 같 습 니 다.코드 에 있 는$scope 는 AngularJS 의 변수 입 니 다.AngularJS 를 사용 하지 않 으 면 바로 제거 할 수 있 습 니 다.코드 는 여 기 를 클릭 하 십시오.(자원 업로드 후 자원 목록 이 잠시 보이 지 않 기 때문에 잠시 다운로드 할 수 없습니다.자원 업로드 가 성공 하면 주 소 를 업데이트 할 것 입 니 다.그때 다운로드 하 세 요)
총결산
위 와 같이 소 편 이 소개 한 웹 개발 은 Angular 를 사용 하여 사용자 의 비밀번호 강도 판별 을 실현 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Angular에서 타사 스크립트 및 CSS 작업Angular 방식으로 회로도가 있는 외부 라이브러리를 추가하거나 모듈을 가져옵니다. Angular.json은 Angular 프로젝트의 모든 설정 파일이며 표준 JavaScript 및 CSS 파일과 함께 타사 라이브...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.