亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

添加最小密碼長度和復雜性控制

添加最小密碼長度和復雜性控制

三國紛爭 2023-08-24 10:35:07
有人可以告訴我如何向我的網站添加最小密碼長度和復雜性的控件這是數據庫CREATE TABLE Users(id INT NOT NULL AUTO_INCREMENT,PRIMARY KEY(id),username VARCHAR(50) NOT NULL,password VARCHAR(10) NOT NULL,birthday DATE);CREATE TABLE dreams(dream_id INT NOT NULL AUTO_INCREMENT,PRIMARY KEY(dream_id),content text NOT NULL,user_id INT,FOREIGN KEY(user_id) REFERENCES Users(id));我希望當用戶注冊并嘗試創建密碼時,他們會收到一條消息,告訴他們密碼太弱或者必須由字母和數字組成..等我可以通過數據庫做些什么嗎?如果在其他地方請幫助我是初學者我使用nodejs-html-CSS-JavaScript謝謝。
查看完整描述

3 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

首先,您應該將驗證設置為同時在服務器端和客戶端工作??蛻舳?,主要是為了用戶體驗,因為精通開發的人總是可以繞過瀏覽器中的任何內容。但是,根據您的聲明,您希望有一條漂亮的用戶消息并顯示該消息,無論客戶端是什么,這將幫助您的用戶更好地了解如何使用您的表單。服務器端驗證也應該到位,以防止錯誤數據保存在數據庫中。

簡而言之,您需要他們攜手合作。您不需要任何特殊的 js 庫來進行最基本的驗證。HTML5 將為您提供顯示許多需求所需的內容,而無需額外的 JavaScript。但是,如果您不喜歡 HTML5 驗證的外觀,則需要使用某種 JavaScript。但是,我總是會從使用它開始,因為它將幫助您的應用程序更輕松地滿足可訪問性標準,并且從那里,您可以通過在其上添加更精美的基于 javascript 的東西來進行迭代,使其看起來更好。

該片段將有一個警告疊加層,該疊加層不會出現在您的網站上。

<form action="">

? <label for="pwd">Password:</label>

? <input type="password" id="pwd" name="pwd"

? pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"

? title="Must contain at least one? number and one uppercase and lowercase letter, and at least 8 or more characters">

? <input type="submit">

</form>

現在,在后端,您應該在處理表單的代碼中創建一個函數,以在將其與其他數據庫規則一起保存到數據庫之前重新檢查驗證。如果由于用戶或某些錯誤以某種方式允許繞過驗證而導致此驗證失敗,您將在表單響應中發回一條失敗消息,前端將在嘗試保存到數據庫失敗后捕獲并顯示該消息。要回答具體如何進行,需要更多有關如何設置應用程序的信息。

您還可以在數據庫中創建一個表來存儲驗證規則,并可以通過某種 API 將這些規則傳遞到前端,以便前端和后端函數可以共享相同的規則,而不必硬編碼相同的正則表達式或無論你正在處理什么規則。換句話說,這兩個驗證的單一事實點——用戶體驗檢查和數據完整性檢查。


查看完整回答
反對 回復 2023-08-24
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

我正在使用驗證密碼來檢測檢測到的弱密碼或強密碼:


我有兩個例子:


This is Pure Javascript


var code = document.getElementById("password");


var strengthbar = document.getElementById("meter");

var display = document.getElementsByClassName("textbox")[0];


code.addEventListener("keyup", function() {

  checkpassword(code.value);

});



function checkpassword(password) {

  var strength = 0;

  if (password.match(/[a-z]+/)) {

    strength += 1;

  }

  if (password.match(/[A-Z]+/)) {

    strength += 1;

  }

  if (password.match(/[0-9]+/)) {

    strength += 1;

  }

  if (password.match(/[$@#&!]+/)) {

    strength += 1;


  }


  if (password.length < 6) {

    display.innerHTML = "minimum number of characters is 6";

  }


  if (password.length > 12) {

    display.innerHTML = "maximum number of characters is 12";

  }


  switch (strength) {

    case 0:

      strengthbar.value = 0;

      break;


    case 1:

      strengthbar.value = 25;

      break;


    case 2:

      strengthbar.value = 50;

      break;


    case 3:

      strengthbar.value = 75;

      break;


    case 4:

      strengthbar.value = 100;

      break;

  }

}

<body>

  <form class="center-block">

    <input type="text" id="password" autocomplete="off" class="form-control input-lg">

    <progress max="100" value="0" id="meter"></progress>

  </form>

  <div class="textbox text-center"> password </div>

</body>

這是 jQuery

function ValidatePassword() {

  /*Array of rules and the information target*/

  var rules = [{

      Pattern: "[A-Z]",

      Target: "UpperCase"

    },

    {

      Pattern: "[a-z]",

      Target: "LowerCase"

    },

    {

      Pattern: "[0-9]",

      Target: "Numbers"

    },

    {

      Pattern: "[!@@#$%^&*]",

      Target: "Symbols"

    }

  ];


  //Just grab the password once

  var password = $(this).val();


  /*Length Check, add and remove class could be chained*/

  /*I've left them seperate here so you can see what is going on */

  /*Note the Ternary operators ? : to select the classes*/

  $("#Length").removeClass(password.length > 6 ? "glyphicon-remove" : "glyphicon-ok");

  $("#Length").addClass(password.length > 6 ? "glyphicon-ok" : "glyphicon-remove");

  

  /*Iterate our remaining rules. The logic is the same as for Length*/

  for (var i = 0; i < rules.length; i++) {


    $("#" + rules[i].Target).removeClass(new RegExp(rules[i].Pattern).test(password) ? "glyphicon-remove" : "glyphicon-ok"); 

    $("#" + rules[i].Target).addClass(new RegExp(rules[i].Pattern).test(password) ? "glyphicon-ok" : "glyphicon-remove");

      }

    }


    /*Bind our event to key up for the field. It doesn't matter if it's delete or not*/

    $(document).ready(function() {

      $("#NewPassword").on('keyup', ValidatePassword)

    });

.glyphicon-remove {

  color: red;

}


.glyphicon-ok {

  color: green;

}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div class="form-group has-feedback">

  <input class="form-control" id="NewPassword" placeholder="New Password" type="password">

  <span class="glyphicon glyphicon-lock form-control-feedback"></span>

</div>

<div id="Length" class="input glyphicon-remove">Must be at least 7 charcters</div>

<div id="UpperCase" class="glyphicon glyphicon-remove">Must have atleast 1 upper case character</div>

<div id="LowerCase" class="glyphicon glyphicon-remove">Must have atleast 1 lower case character</div>

<div id="Numbers" class="glyphicon glyphicon-remove">Must have atleast 1 numeric character</div>

<div id="Symbols" class="glyphicon glyphicon-remove">Must have atleast 1 special character</div>


查看完整回答
反對 回復 2023-08-24
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

您可以在 javascript 代碼中使用 jquery.validate,


<script>

    $("#form1").validate({

        rules:{

            password:{

                required:true,

                minlength:8

            }

        },

        messages:{

            password:{

                required:"Password is required",

                minlength:"Passowrd must be atleast 8 characters long"

            }

        }

    });

</script>

密碼是輸入字段中的名稱屬性,對于數據庫中的圖片,您可以使用 varbinary(max)


查看完整回答
反對 回復 2023-08-24
  • 3 回答
  • 0 關注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號