溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用js進(jìn)行表單的簡單密碼驗證

發(fā)布時間:2020-07-22 10:41:32 來源:億速云 閱讀:800 作者:Leah 欄目:web開發(fā)

這篇文章運用簡單易懂的例子給大家介紹如何使用js進(jìn)行表單的簡單密碼驗證,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

首先我們要了解一下如何實現(xiàn)密碼的安全輸入

許多網(wǎng)站現(xiàn)在都需要注冊,這意味著需要為用戶分配用戶名和密碼。以下是一些簡單的步驟,可以使流程更加安全。

使用“password”輸入類型

使用<input type =“password”>代替<input type =“text”>,因為這樣可以讓瀏覽器(和用戶)知道需要保護(hù)該字段的內(nèi)容。

鍵入時屏幕上不會顯示密碼,大多數(shù)瀏覽器也不會像其他表單元素那樣“記住”在密碼字段中輸入的值。

在某些情況下,例如在移動設(shè)備上,顯示密碼可以提高可用性而不會影響安全性。畢竟,只有瀏覽器顯示被混淆而不是數(shù)據(jù)傳輸。

確認(rèn)密碼輸入

由于密碼輸入類型模糊了鍵入的文本,因此您應(yīng)該讓用戶確認(rèn)他們沒有犯錯。最簡單的方法是輸入兩次密碼,然后檢查它們是否相同。

另一種方法是顯示他們作為“確認(rèn)頁面”的一部分輸入的內(nèi)容。這里的問題是您在瀏覽器,瀏覽器緩存,代理等中顯示密碼。為了安全起見,密碼絕不應(yīng)以HTML格式顯示或通過電子郵件發(fā)送。

強制執(zhí)行“強大”密碼(復(fù)雜的密碼)

如果您擔(dān)心安全性,您應(yīng)該對有效密碼的構(gòu)成有一些政策。一些常見的限制是:

1、至少n個字符;

2、大寫和小寫字符的組合;

3、一個或多個數(shù)字;

4、與其他用戶數(shù)據(jù)無關(guān)(名稱,地址,用戶名,......);

現(xiàn)在留下最后一個要求,因為它需要一個服務(wù)器端腳本,讓我們看看使用客戶端HTML和JavaScript的可能性。

服務(wù)器安全

雖然擁有復(fù)雜的密碼是一個很好的第一步,但需要在服務(wù)器上采取其他措施來備份,以防止暴力攻擊。一種流行的方法是安裝Fail2Ban來監(jiān)視日志文件并鎖定重復(fù)的錯誤。當(dāng)然,僅當(dāng)你的登錄系統(tǒng)報告登錄嘗試失敗到系統(tǒng)日志文件時才有效。否則您的應(yīng)用程序需要提供此功能。

密碼需要加密存儲在數(shù)據(jù)庫或其他地方,任何備份也應(yīng)加密。

下面我們來使用js實現(xiàn)一個簡單的表單驗證的操作

下面的表單有三個輸入字段:username,pwd1和pwd2。提交表單時,checkForm腳本會解析輸入值并返回true或false。如果返回false值,則表單提交將被取消。

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<script type="text/javascript">
			function checkForm(form) {
				if(form.username.value == "") {
					alert("錯誤:用戶名不能為空!");
					form.username.focus();
					return false;
				}
				re = /^\w+$/;
				if(!re.test(form.username.value)) {
					alert("錯誤:用戶名必須只包含字母、數(shù)字和下劃線!");
					form.username.focus();
					return false;
				}

				if(form.pwd1.value != "" && form.pwd1.value == form.pwd2.value) {
					if(form.pwd1.value.length < 6) {
						alert("錯誤:密碼必須至少包含六個字符!");
						form.pwd1.focus();
						return false;
					}
					if(form.pwd1.value == form.username.value) {
						alert("錯誤:密碼必須與用戶名不同!");
						form.pwd1.focus();
						return false;
					}
					re = /[0-9]/;
					if(!re.test(form.pwd1.value)) {
						alert("錯誤:密碼必須包含至少一個數(shù)字(0至9)!");
						form.pwd1.focus();
						return false;
					}
					re = /[a-z]/;
					if(!re.test(form.pwd1.value)) {
						alert("錯誤:密碼必須包含至少一個小寫字母(a-z)!");
						form.pwd1.focus();
						return false;
					}
					re = /[A-Z]/;
					if(!re.test(form.pwd1.value)) {
						alert("錯誤:密碼必須包含至少一個大寫字母(A-Z)!");
						form.pwd1.focus();
						return false;
					}
				} else {
					alert("錯誤:請檢查并確認(rèn)您輸入的密碼是否一致!");
					form.pwd1.focus();
					return false;
				}

				alert("You entered a valid password: " + form.pwd1.value);
				return true;
			}
		</script>
	</head>

	<body>
		<form onsubmit="return checkForm(this);">
			<p>用戶名: <input type="text" name="username"></p>
			<p>密 碼: <input type="password" name="pwd1"></p>
			<p>確認(rèn)密碼: <input type="password" name="pwd2"></p>
			<p><input type="submit"></p>
		</form>
	</body>

</html>

效果圖:

如何使用js進(jìn)行表單的簡單密碼驗證

當(dāng)我們輸入的兩次密碼不一致時,會報錯:

如何使用js進(jìn)行表單的簡單密碼驗證

請記住,由于JavaScript并非在所有瀏覽器中都可用, 因此在將數(shù)據(jù)記錄到數(shù)據(jù)庫或其他地方之前,還應(yīng)使用服務(wù)器端腳本來驗證所有數(shù)據(jù)。

關(guān)于如何使用js進(jìn)行表單的簡單密碼驗證就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

js
AI