0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Javaプラクティス シーザー暗号

Last updated at Posted at 2021-09-18

#前書き
Javaで練習してみる。 FizzBuzzができればどんどん実践にという人もいるが
他にないかと思い提案します。
#javaの要素
・ファイル入出力
・ループ
・Javaが用意してくれているメソッドを使用
発展としてメソッド化してパラメータを変更できるようにする。
入力ファイルをもっと複雑にするなどが考えられる。
#前提知識 シーザー暗号
シーザー暗号を使う。以下Wikipediaによる説明
シーザー暗号は単一換字式暗号の一種であり、平文の各文字を辞書順で3文字分シフトして(ずらして)暗号文とする暗号である。古代ローマの軍事的指導者ガイウス・ユリウス・カエサル(英語読みでシーザー)が使用したことから、この名称がついた。

#前提知識 アルファベットからアスキーコードへの変換

char c = 'A';
int code = c;
System.out.println(code);
結果が 65

#前提知識 ファイル 読み込み
https://www.javadrive.jp/start/stream/index1.html

#試作 その1

AをBにしてみる
char c = 'A';
int code = c;
int temp =  code + 1;
char b  = (char) (temp);
System.out.println((char) (temp));
結果が B

#試作 その2

ABC  BCD にする
char c = 'A';
int code = c;
int temp =  code + 1;
char b  = (char) (temp);
System.out.println((char) (temp));
結果が BCD

#試作 その3
文字列 Hello goodbyeを 辞書順で3文字分シフトしたのち
もう一度 復元する。

String temp = "Hello goodbye";
		
	
char[] c = temp.toCharArray();
for (char ch: c) {
 char b  = (char) ((ch) +3);
 System.out.print(b);
}
結果が Khoor#jrrge|h
        
String temp = "Khoor#jrrge|h";
			
char[] c = temp.toCharArray();
for (char ch: c) {
char b  = (char) ((ch) -3);
System.out.print(b);
}
結果がHello goodbye 

#本番
##仕様
・ファイルから文字列を読み込むこと
・暗号文を復元すること 今回はシーザー暗号からの復元なので 辞書順で3文字分シフト
してあるものを復元するとする。

##実装例

test.txt
Khoor#jrrge|h


public static void main(String[] args) {
		 try{
		      File file = new File("/Users/gina/Documents/gina
work/New/src/test/test.txt");
		      FileReader filereader = new FileReader(file);

		      int ch;
		      while((ch = filereader.read()) != -1){
		    	  System.out.print((char)(ch -3));
		      }

		      filereader.close();
		    }catch(FileNotFoundException e){
		      System.out.println(e);
		    }catch(IOException e){
		      System.out.println(e);
		    }
		  }
	}
結果がHello goodbye 
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?