문자열 암호화

조건 

 > 주어진 암호표를 사용하여 암호화시키기

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

+ Recent posts