본문 바로가기
programming/java

[java] Cipher암호화하여 문자열 출력하기

by 몽구스_ 2021. 1. 1.
728x90

 

문제

고전 암호학(Classical Cryptography)에서 사용하는 기법 중 
“Caesar Cipher” 는 
암호화의 대상이 되는 각각의 문자들을 알파벳 상의 
세번째 오른쪽 문자로 치환하는 간단한 치환 암호기법
(즉, a는 d로, b는 e로, … , x는 a로, y는 b로, z는 c로)입니다.  
“everyday we have is one more than we deserve” 라는 문자열에 대해 
Caesar Cipher 를 적용하여 암호화된 문자열 값을 아래와 같이 출력하도록 
Prob3의 클래스의 main 함수를 완성하십시오. 
(단, 공백에 대해서는 치환을 적용하지 않습니다.)

*****  실행시 출력예시 *****
암호화할 문자열 : everyday we have is one more than we deserve
암호화된 문자열 : hyhubgdb zh kdyh lv rqh pruh wkdq zh ghvhuyh

 

 

public class work3_0 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String sourceString = 
				"everyday we have is one more than we deserve";
				String encodedString = "";
				
				StringBuilder sb = new StringBuilder();
				// 프로그램을 구현부 시작.	
				// 참고 : 문자 'a'의 정수값은 97이며, 'z'는 122입니다. 
				for(int i=0; i < sourceString.length(); i++) {
					if(sourceString.charAt(i) != ' ') {
						int s = sourceString.charAt(i) + 3;
						if(s > 'z') {
							s = s - ('z'-'a' + 1);
						}
						sb.append((char)s);
					}
					else { sb.append(sourceString.charAt(i));}
				}
				encodedString = sb.toString();
				

				// 프로그램 구현부 끝.
				System.out.println("암호화할 문자열 : " + sourceString);
				System.out.println("암호화된 문자열 : " + encodedString);
		
	}

}

'programming > java' 카테고리의 다른 글

[java] 자료구조 스택 코드 구현  (0) 2021.01.05
[java] 선택정렬  (0) 2021.01.01
[java] split, trim  (0) 2021.01.01
[java] string배열 순서대로 글자만 역순 출력  (0) 2021.01.01
[java] 반복문에서의 break  (0) 2020.12.31

댓글