C# web程式js 與 後臺密碼強弱驗證
阿新 • • 發佈:2020-06-10
1、js端驗證
function checkPass(s) { if (s.length < 8) { return 0; } var ls = 0; if (s.match(/([a-z])+/)) { ls++; } if (s.match(/([0-9])+/)) { ls++; } if (s.match(/([A-Z])+/)) { ls++; } if (s.match(/[^a-zA-Z0-9]+/)) { ls++; }return ls }
2、後臺驗證
public class CheckPass { /// <summary> /// 密碼強度 /// </summary> public enum Strength { Invalid = 0,//無效密碼 Weak = 1,//低強度密碼 Normal = 2,//中強度密碼 Strong = 3 //高強度密碼 }; /// <summary>/// 計算密碼強度 /// </summary> /// <param name="password">密碼字串</param> /// <returns></returns> public static Strength PasswordStrength(string password) { //空字串強度值為0 if (password == "") return Strength.Invalid;//字元統計 int iNum = 0,iLtt = 0,iSym = 0; foreach (char c in password) { if (c >= ‘0‘ && c <= ‘9‘) iNum++; else if (c >= ‘a‘ && c <= ‘z‘) iLtt++; else if (c >= ‘A‘ && c <= ‘Z‘) iLtt++; else iSym++; } if (iLtt == 0 && iSym == 0) return Strength.Weak; //純數字密碼 if (iNum == 0 && iLtt == 0) return Strength.Weak; //純符號密碼 if (iNum == 0 && iSym == 0) return Strength.Weak; //純字母密碼 if (password.Length < 8) return Strength.Weak; //長度小於8的密碼 if (iLtt == 0) return Strength.Normal; //數字和符號構成的密碼 if (iSym == 0) return Strength.Normal; //數字和字母構成的密碼 if (iNum == 0) return Strength.Normal; //字母和符號構成的密碼 return Strength.Strong; //由數字、字母、符號構成的密碼 } }
3、使用方法
if (checkPass(mcp_txtPasswordField.getValue()) < 3) { toastalert(‘密碼必須是字母大寫、字母小寫、數字、特殊字元中任意三個組合,且長度大於8位!‘); return false; }
if (CheckPass.PasswordStrength(this.txtPassword.Value)!=Strength.Strong) { this.Response.Redirect("/manager/ChangePwd.aspx"); return; }
4、第一次跳轉時修改密碼介面一般是單獨介面,判斷是否在iframe中方法
1.方式一 if (self.frameElement && self.frameElement.tagName == "IFRAME") { alert(‘在iframe中‘); } 2.方式二 if (window.frames.length != parent.frames.length) { alert(‘在iframe中‘); } 3.方式三 if (self != top) { alert(‘在iframe中‘); }
以上程式碼片段來自網友:
https://www.cnblogs.com/zycbloger/p/6196493.html