티스토리 뷰
지금도 비주얼 베이직이 여러 분야에서 많이 사용되고 있다.
예전... 비주얼 베이직이 지금처럼 화려한(?) 함수를 갖기 전에 사용되던 암호화 기법을 자바로 convert한 것이다.
자세히 보면 알고리즘은 눈곱만큼도 들어있지 않다. 단지 비밀번호를 byte한 String으로 숫자를 더해 새로운 int 비밀번호 단어을 만드는 것뿐이다. 복잡할 뿐이지 곱하는 숫자에 현혹되어 어렵게 느낄 필요는 없다.
사실 이건 알고리즘이 아니라서 알고 있을 필요도 없다.
하지만 알고 있으면 한번은 유용하게 사용할 때가 있을 것이다.
참고로만 하면 된다.
public static String converPWD(String strpwd) {
int nDigitSum, nCnt;
String secretcode = "";
String passwordnum = "";
byte[] bytTemp = strpwd.getBytes();
for (nCnt = 0; nCnt < bytTemp.length; nCnt++) {
passwordnum += bytTemp[nCnt];
}
// 1. ---------------------------------------------------------------------------------------------------------
nDigitSum = 0;
for (nCnt = 1; nCnt <= passwordnum.length(); nCnt++)
{
switch (nCnt % 2)
{
case 1:
nDigitSum += 3 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 0:
nDigitSum += 7 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
}
}
secretcode = String.valueOf(10 - (nDigitSum % 10)).substring(String.valueOf(10 - (nDigitSum % 10)).length() - 1, String.valueOf(10 - (nDigitSum % 10)).length()) + passwordnum.substring(1, 2);
// 2. ---------------------------------------------------------------------------------------------------------
nDigitSum = 0;
for (nCnt = 1; nCnt <= passwordnum.length(); nCnt++)
{
switch (nCnt % 3)
{
case 1:
nDigitSum += 2 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 2:
nDigitSum += 5 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 0:
nDigitSum += 9 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
}
}
secretcode += String.valueOf(10 - (nDigitSum % 10)).substring(String.valueOf(10 - (nDigitSum % 10)).length() - 1, String.valueOf(10 - (nDigitSum % 10)).length()) + passwordnum.substring(3, 4);
//3. ----------------------------------------------------------------------------------------------------------
nDigitSum = 0;
for (nCnt = 1; nCnt <= passwordnum.length(); nCnt++)
{
switch (nCnt % 4)
{
case 1:
nDigitSum += 4 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 2:
nDigitSum += 8 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 3:
nDigitSum += 2 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 0:
nDigitSum += 6 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
}
}
secretcode += String.valueOf(10 - (nDigitSum % 10)).substring(String.valueOf(10 - (nDigitSum % 10)).length() - 1, String.valueOf(10 - (nDigitSum % 10)).length()) + passwordnum.substring(5, 6);
// 4. ---------------------------------------------------------------------------------------------------------
nDigitSum = 0;
for (nCnt = 1; nCnt <= passwordnum.length(); nCnt++)
{
switch (nCnt % 5)
{
case 1:
nDigitSum += 1 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 2:
nDigitSum += 3 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 3:
nDigitSum += 2 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 4:
nDigitSum += 0 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
case 0:
nDigitSum += 4 * Integer.parseInt(passwordnum.substring(nCnt - 1, nCnt));
break;
}
}
return secretcode += String.valueOf(10 - (nDigitSum % 10)).substring(String.valueOf(10 - (nDigitSum % 10)).length() - 1, String.valueOf(10 - (nDigitSum % 10)).length()) + passwordnum.substring(7, 8);
}
* 읽기 불편할 것으로 파일로 첨부하겠다.
'프로그램' 카테고리의 다른 글
iBatis에서 ‘#’과 ‘$’ Escape 하기 삽질 (0) | 2014.02.13 |
---|---|
자바 Spring3.x 스케줄링 (0) | 2014.02.12 |
SWT 프로그램 기초 (0) | 2014.02.11 |
다익스트라(Dijkstra) 알고리즘 (0) | 2014.02.08 |
자바 최단거리 알고리즘 (Dijkstra) (0) | 2014.02.08 |
- Total
- Today
- Yesterday
- Let it Go
- ibatis
- jQuery
- MySQL
- 프로그램
- JSP
- Tomcat
- 부산
- jqm
- 블로그
- 가사
- base64
- 블로그 마케팅
- OST
- 자바
- 쿼리
- 자바스크립트
- 이클립스
- 전자정부프레임웍
- jstl
- java
- 겨울왕국
- 톰캣
- MSSQL
- 연말정산
- jQuery Mobile
- asp
- 맛집
- 소프트웨어공학
- Eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |