문자열 암호화
조건
> 주어진 암호표를 사용하여 암호화시키기
public class Encryption02 {
public static void main(String[] args) {
// 문자열 암호화 시키기
// a ~ z
char[] abcCode = { '`', '~', '!', '@', '#', '$', '%', '^', '&',
'*', '(', ')', '-', '_', '+', '=', '|', '[',
']', '{', '}', ';', ':', ',', '.', '/' };
// 0 ~ 9
char[] numCode = { 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p' };
String src = "abc123";
// 암호화 문자열을 담을 변수
String result = "";
for (int i = 0; i < src.length(); i++) {
// 문자열 scr를 char형으로 한개씩 쪼개기
char c = src.charAt(i);
// c를 int형으로 강제형변환
int index = (int)c;
// 알파벳 암호화
if(c >= 'a'&& 'z' >= c) {
// c == 'a' == 97 때문에 -97을 대입한다.
// ex) abcCode[index-97]; == abcCode[0];
result += abcCode[index-97];
// 숫자 암호화
}else if(c >= '0'&& '9' >= c) {
// c == '0' == 97 때문에 -48을 대입한다.
result += numCode[index-48];
}
}
System.out.println("원본\t: "+src);
System.out.println("암호화\t: "+result);
원본 : abc123
암호화 : `~!wer
실행화면입니다.
문자열 복호화
조건
> 암호화된 문자열을 원래대로 되돌리기
// 위 코드와 이어서
// 복호화
// 복호화 문자열을 담을 변수
String originalCode = "";
for (int i = 0; i < result.length(); i++) {
char c = result.charAt(i);
// 알파벳 -> 숫자
int index = 0;
if(c >= 'a' && 'z' >= c) {
for (int j = 0; j < numCode.length; j++) {
// c == 'w' == 1
if ( c == numCode[j]) {
index = j;
break;
}
}
index += 48;
originalCode += (char)index;
// 특수기호 -> 알파벳
}else {
for (int j = 0; j < abcCode.length; j++) {
if ( c == abcCode[j]) {
index = j;
break;
}
}
index += 97;
originalCode += (char)index;
}
}
System.out.println("복호화\t: "+originalCode);
}
}
원본 : abc123
암호화 : `~!wer
복호화 : abc123
전체 코드 실행화면입니다.
'문제풀이 > Java' 카테고리의 다른 글
[자바] 피보나치 수열 (0) | 2021.05.14 |
---|---|
[자바] 남은 동전 구하기 (0) | 2021.05.12 |
[자바] (업그레이드) 계산기 (0) | 2021.05.12 |
[자바] 계산기 (0) | 2021.05.12 |
[자바] 가위바위보 게임 (0) | 2021.05.11 |