1. 程式人生 > >簡單密碼驗證(java)

簡單密碼驗證(java)

2018/2/3

java

要求

1.使用者名稱最多25個字元,不能包含空格,單雙引號,問號等特殊符號

2.密碼要6到18位,只能包含字母數字,特殊符號

 注意判斷密碼強度:

 1.只為純數字純字母為2星

 2.為字母加數字,字母加符號,符號加數字為4星

  3.三者都有為6星

package package1;
/*使用者類,設計使用者的使用者名稱,密碼*/
public class User
{
	
private String userName;
private String passWord;


public User(String userName,String Password,String email)
{
	setUserName(userName);
	setPassWord(Password);
	
}
public String getUserName() 
{
	return userName;
}
public void setUserName(String userName) 
{
	this.userName = userName;
}
public String getPassWord()
{
	return passWord;
}
public void setPassWord(String passWord)
{
	this.passWord = passWord;
}


}

package package1;

import java.util.Scanner;

public class userMain {
public static void main(String[] args)
/*實現使用者註冊*/
{
	/*初始化*/
	Scanner input=new Scanner(System.in);
	System.out.println("請輸入使用者名稱");
	
	String userName=input.next();
	System.out.println(stringutil.isCorrectUserName(userName));
	
	System.out.println("請輸入密碼");
	String password=input.next();
	System.out.println(stringutil.vaildatePassword(password));
	
	
	
	
	
	
}
}
package package1;
/*字串的工具類,用於封裝對字串判斷的方法*/
public class stringutil 
{
//1.使用者名稱最多25個字元,不能包含空格,單雙引號,問號等特殊符號
	public static boolean isCorrectUserName(String userName)
	{
		boolean isCorrect=true;
		if(userName==null) return false;
		if(userName.length()>25) return false;
		/*定義非法的字元陣列,單引號要用\'表示*/
		char[] unvaildChar= {' ','\'','"','?','*','~',','};
		for(char ch:unvaildChar)
		{
			if(userName.contains(Character.toString(ch)))
			{
				System.out.println("存在非法字元");
				isCorrect=false;
				break;
				
			}
		}
		System.out.println("賬號輸入正確");
		return isCorrect;
	}
	/*2.密碼要6到18位,只能包含字母數字,特殊符號
	 * 純數字,純字母時,密碼強度為弱
	 * 數字加字母,數字加符號,字母加符號時,密碼強度為中
	 *數字加字母加符號時,密碼強度為強 */
	public static String  vaildatePassword(String password)
	{
		/*密碼強度*/
		String power="";
		if(password==null) return power;
		if(password.length()<6||password.length()>18) return power;
		/*合法的組成部分*/
		//String[]collectPart= {"_","@","&","#","$","."};
		String part="@&#$,.";
		for(int i=0;i<password.length();i++)
		{
			/*如果不為字母和數字*/
			if(!(Character.isLetterOrDigit(password.charAt(i))))
			{
				if(!(part.contains(Character.toString(password.charAt(i)))))
				{
					System.out.println("密碼不合法");
					return power;
				}
			}
				
		}
		/*純數字或純字母*/
		if(isDigit(password)||isletter(password))
		{
		   System.out.print("密碼強度為");
			power="★★☆☆☆☆";
		}
		else if(isDigitAndLetter(password))
		{
			 System.out.print("密碼強度為");
				power="★★★★☆☆";
		}
		else if(isContainssymble(password))
		{
			System.out.println("密碼強度為");
			power="★★★★★★";
		}
		
		/*字串中包含合法的字母和數字*/
		
				return power;
	}
	/*判斷密碼強度*/
	/*判斷字串是不是純數字*/
	private static boolean isDigit(String value)
	{
		
		for(int i=0;i<value.length();i++)
		{
			if(!Character.isDigit(value.charAt(i)))
			{
				return false;
			}
		}
		return true;
	}
	
	/*判斷字串是不是純字母*/
	private static boolean isletter(String value)
	{
		
		for(int i=0;i<value.length();i++)
		{
			if(!Character.isLetter(value.charAt(i)))
			{
				return false;
			}
		}
		return true;
	}
	/*有沒有包含特殊符號*/
	    
	private static boolean isContainssymble(String value)
	{
		
		String part="@&#$,.";
		for (int i = 0; i < value.length();i++)
		{
			if(part.contains(Character.toString(value.charAt(i))))
			{
				return true;
			}
			
		}
		return false;
	}
	/*是否包含數字和字母*/
	private static boolean isDigitAndLetter(String value)
	{
		for(int i=0;i<value.length();i++)
		{
			if(!(Character.isLetterOrDigit(value.charAt(i))))
			{
				return false;
			}
		}
		return true;
	}
	/*是否包含數字字母和特殊符號*/
	
	}
	



相關推薦

簡單密碼驗證java

2018/2/3 java 要求 1.使用者名稱最多25個字元,不能包含空格,單雙引號,問號等特殊符號 2.密碼要6到18位,只能包含字母數字,特殊符號  注意判斷密碼強度:  1.只為純數字純字母為2星  2.為字母加數字,字母加符號,符號加數字為4星   3.三者都有為

18位身份證驗證Java加入身份證輸入驗證是否滿足18位程式碼修訂稿

package day20181016;/** * 身份證的驗證 34052419800101001X * */import java.util.Scanner;public class ZuoYe04 { public static void main(String[] args) { Scanner in

18位身份證驗證Java

我的程式碼: package day20181016;/** * 身份證的驗證 34052419800101001X * */import java.util.Scanner;public class ZuoYe04 { public static void main(String[] args) {

簡單支付驗證SPV與創新

“比特幣挖礦越來越難了怎麼辦?”,“比特幣存在的缺陷是否會造成自身的消亡呢?”,“比特幣是否是一個註定失敗的實驗?”,人們對比特幣的疑問有很多很多,甚至很多還有點悲觀。作為一個軟體程式,穩定執行這麼多年已經是一個奇蹟,然而我們也不得不承認它有一些不完美的地方。但是,事物都是在發展中的,我們一樣也應以發展的眼光

微信開發2:微信js sdk分享朋友圈,朋友,獲取config介面注入許可權驗證java

進行微信開發已經一陣子了,從最初的什麼也不懂,到微信授權登入,分享,更改底部選單,素材管理,等。 今天記錄一下微信jssdk 的分享給朋友的功能,獲取config介面注入。 官方文件走一下 簡單說:四步走 1.繫結域名 (注意:設定js安全域名的時候,需

selenium測試Java-- 驗證信息

shc imp tle java style code spa aid pack package com.test.validationinfor; import org.openqa.selenium.WebDriver; import org.openqa.sele

javaselenium webdriver學習---實現簡單的翻頁,將頁面內容的標題和標題鏈接取出

prop imp current inter 並且 常見問題 activity num div selenium webdriver學習---實現簡單的翻頁,將頁面內容的標題和標題鏈接取出; 該情況適合能能循環page=1~n,並且每個網頁隨著循環可以打開的情況, 註意一定

簡單易用的參數校驗北京PK10平臺出租和版本校驗方式java

else runtime boot java pri conf utils 短信 con 步驟是:配置數據校驗規則(多條)>>>>在控制器上添加校驗註解>>>>使用攔截器攔截校驗參數(獲取註解,初始化校驗規則(第一次),取出參

MQTT簡單demojava

停用 隊列 設置 msg 的區別 多個 指定 throwable ica   上次已經簡單的談了一些MQTT協議的一些知識,今天就來就上次的知識具體的Java實現。   現在就來具體說說實現這一步吧。中間的時間也是有點久。   MQTT消息的發送和訂閱都是依賴MQTT服務器

javaleetcode804 唯一摩爾斯密碼Unique Morse Code Words

題目描述: 國際摩爾斯密碼定義一種標準編碼方式,將每個字母對應於一個由一系列點和短線組成的字串, 比如: "a" 對應 ".-", "b" 對應 "-...", "c" 對應 "-.-.",

大話設計模式之簡單工廠模式Java

大話設計模式——第一章(簡單工廠模式)   題目:請用C++、Java、C#或VB.NET任意一種面嚮物件語言實現一個計算器控制檯程式,要求輸入兩個數和運算子號,得到結果。 import java.io.Console; import java.util.Scanner; /**

Mybatis的簡單使用步驟java專案

1、在eclipse中建立mavenjava專案(jar),並初始化依賴,放入log4j的配置檔案 pom檔案如下(一個是Mybatis必須的,一個是log4j的日誌) <project xmlns="http://maven.apache.org/POM/4.0.0" xm

三維裝箱問題Java程式碼的簡單實現過程程式碼

  兩年前發了篇關於三維裝箱的日記,許諾過要分享程式碼的,結果一直沒發,後來居然忘記了。一直有人加我QQ來的,這幾年都用微信了,直到最近才發現這個問題,   千萬不要輕易許諾別人什麼,否則事後真的很難兌現,兩年前的欠下的程式碼,今天,還了罷。為了我寫了好久的,腦力不夠了,空

JAVA 資料庫密碼加密MD5

文章出處:http://xxiao0359.blog.163.com/blog/static/979413752010109045701/ import java.security.MessageDigest; public class Password&nbs

JavaIDEA 建立一個簡單的 “Hello world”

  早就聽說  IDEA   好用,今天晚上終於下載下來了, 下載---安裝--破解  一氣呵成~   起飛的地址看下面,這哥們的部落格也很帥~ https://www.cnblogs.com/jajian/p/79890

簡單的折半查詢演算法Java

折半查詢的優點是能夠最大減少查詢的時間複雜度,但也對查詢的目標陣列或集合提出一定要求,即陣列或集合中的數字排序必須是有序的,否則不能用折半查詢,只能用遍歷。以下是簡單的折半查詢演算法: public class test { public static void main

php-laravel框架使用者驗證Auth模組解析忘記密碼

一、忘記密碼模組路由 路由名稱 請求方式 方法實現 /login GET 登入頁面 /login POST 實現登入功能 /logout POST

圖形驗證碼的實現java

前言 圖形驗證碼在我們日常生活中是很常見的,一般用於登入頁面來避免簡單的網路機器人來不斷地請求你的資料。以前總是覺得這個很神奇,總以為是先自己做好一張張的靜態圖片然後切換即可。當時也存在個疑問,如果是這樣,那豈不是會重複?知道後來看到同事寫的程式碼才知道具體的實現過程。 實現過程 做法簡述

ueditor富文字編輯器java使用及最簡單的配置ssh

之前用過ueditor,結果這兩天要用又忘了怎麼用了,寫個文件記錄下來 1. UEditor簡介 UEditor是由百度web前端研發部開發所見即所得富文字web編輯器,具有輕量,可定製,注重使用者體驗等特點,開源基於MIT協議,允許自由使

用python實現二叉搜尋樹/查詢樹的簡單實現及驗證判斷棧中根序遍歷

基於棧的中根序深度優先遍歷判斷法(天然排序,每次比上一個值大即可)。由搜尋樹的性質推得中根序深度遍歷為一個從小到大的有序序列。所以根據這一性質事情就好辦了,只要在遍歷過程中加入與前一值得比較判斷即能達到目的(複雜度O(n),推薦演算法)。程式碼如下:def midorder(