์ ๋ ฅ๋ฐ์ ์ซ์๋งํผ์ ๋๋ค ๋น๋ฐ๋ฒํธ ์์ฑ
์์ฒญ์ฌํญ์ ์ํด, ๋น๋ฐ๋ฒํธ ์ด๊ธฐํ ์ ๋๋ค ๊ฐ์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํด๋ฌ๋ผ๊ณ ํ์๋ค.
์ซ์, ์ ๋์๋ฌธ์๋ฅผ ์์ด์ ํน์ ์๋ฆฟ ์๋ก ๋ง์ด๋ค.
์ผ๋จ์ ์๊ตฌ์กฐ๊ฑด์ ๋ง๊ฒ๋ ๋น ๋ฅด๊ฒ ์งํํ์๋ค.
private static String getRandomPassword(int passwordLength) {
char[] pwdcharSet = new char[] {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
};
int idx = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < passwordLength; i++) {
idx = (int) (pwdcharSet.length * Math.random());
sb.append(pwdcharSet[idx]);
}
return sb.toString();
}
public static void main(String[] args) {
String rs=getRandomPassword(8);
System.out.println("rs : "+rs);
}
๊ณต๋ถํ๋ ์น๊ตฌ๋ค์ ์ํ ์ฃผ์
char[] pwdcharSet : ์ผ๋จ ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ ํ๊ณ ์ถ์ ๋จ์ด ๋๋ ์ซ์ ๋๋ ๋ฌธ๊ตฌ๋ค์ ๋ฐฐ์ด์ ๋ฃ๋๋ค.
(์ฐ๋ฆฌ๋ ์ด ๋ฒ์ ์์ ์๋ ์น๊ตฌ๋ค์ ๊ฐ์ง๊ณ ํธ๋ค๋ง ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค)
int idx : ์์์ ์ ์ธํ pwdcharSet ์ ๋ฒ์ง ๊ฐ์ ๊ณ ๋ฅผ ๊ฒ์ธ์ง ๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ค.//์ฌ์ค ์ ์ธํด๋ ๊ทธ๋ง, ์ ์ธํ์ง ์์๋ ๊ทธ๋ง. ๊ฐ๋ ์ฑ์ ์ํด ๋ณ์๋ฅผ ์ ์ธํ๋ค. (์ด๊ธฐํ๋ ์์ง๋ง๊ณ )
StringBuffer : ๋จ์ํ ๋ฌธ์๋ฅผ ๋ฌธ์์ด๋ก ๋ง๋ค์ด ์ด์ด ๋ถ์ด๊ธฐ ์ํด ์ฆ, StringBuffer์ append๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ ์ธํ๋ค.
idx = (int)(pwdcharSet.length*Math.random()) : ์์์ ๋งํ๋ฏ idx๋ pwdcharSet์ ๋ฒ์ง ๊ฐ์ ๋ด๊ธฐ ์ํ ๋ณ์์ด๋ค.
Math.random์ ๋ฒ์๋ 0.0 ~ 1.0 ์ฌ์ด ์์ผ๋ก ์์์๋ 62*Math.random(); ์ด ๋๊ฒ ๋ค.
sb.append(pwdcharSet[idx]) : pwdcharSet[๋ฒ์ง ๊ฐ]์ append๋ก ์ถ๊ฐํ๋๋ฐ, for๋ฌธ์ผ๋ก ๊ฐ์ธ ์๋ฆฟ์๋งํผ ์ด์ด๋ถ์ธ๋ค.
int passwordLength ๊ฐ์ด 8 ์ด๋ฉด 8์๋ฆฌ๊ฒ ์ฃ ?
๋