Cypher

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 812e525a9909d67e4a360dae934a3f8f3f749f08
parent 37a65ac1f9e96dfe801a8952609b844fd09fa280
Author: Minerva_juppiter <94231606+minerva-jupiter@users.noreply.github.com>
Date:   Sat, 25 Jun 2022 00:00:47 +0900


Diffstat:
AEncrypt.cs | 160+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MProgram.cs | 191+++----------------------------------------------------------------------------
Atest.cs | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 233 insertions(+), 185 deletions(-)

diff --git a/Encrypt.cs b/Encrypt.cs @@ -0,0 +1,160 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Cypher +{ + internal class Encrypt + { + public void encrypt() + { + //暗号化 + + //変数宣言 + int[] order = new int[100]; + string written; + string[] date = new string[100]; + int quotient; //商 + int amari = 0; //あまり + int inNumber = 0; //入力データ番号 + int arrayNumber = 0; //配列番号 + int chapter = 0; + int f = 0; + byte[] eByte = new byte[1]; + + //質問 + string whereDateFile; + string whereKeyFile; + string whereEncryptedFile; + + //自動テスト + whereDateFile = @"h:\date.txt"; + whereEncryptedFile = @"h:\encrypted.txt"; + whereKeyFile = @"h:\key.txt"; + + /* + whereEncryptedFile = Question("Where will you create encrypted file?", false); + whereDateFile = Question("Where is the file you want to encrypt?", true); + whereKeyFile = Question("Where is keyFile?", true); + */ + + //順序ファイルの読み込み + StreamReader sr = new StreamReader(whereKeyFile); + Console.WriteLine("KeyFile was readed"); + + + //配列に順序を書き込み + while (inNumber < 100) + { + order[inNumber] = int.Parse(sr.ReadLine()); + inNumber++; + } + Console.WriteLine("Order was written to int."); + + + //ファイルの内容をすべて読み込む + FileStream fs = new FileStream(whereDateFile, FileMode.Open); + byte[] bs = new byte[fs.Length]; + fs.Read(bs, 0, bs.Length); + fs.Close(); + Console.WriteLine("Date was readed to byte."); + + + + inNumber = 0; + + //100dyteを満たさない場合は残りのファイルにゼロを代入 + if (bs.Length < 100) + { + Console.WriteLine("File size is less than 100"); + int dateLength = bs.Length; + while (dateLength == 100) + { + bs[dateLength + 1] = 0; + dateLength = bs.Length; + } + } + + //date[]にビット単位で百分割したファイルを保存 + //参照したファイルのビット数が百の倍数か判定する。 + if (bs.Length % 100 == 0) + { + //100の倍数の場合 + Console.WriteLine("date.Length mod10 = 0"); + inNumber = 0; + quotient = bs.Length / 100; + //ファイルを百分割してdata配列に代入 + while (arrayNumber < 100) + { + f = f + quotient + 1; + while (inNumber < f) + { + eByte[0] = bs[inNumber]; + date[arrayNumber] = Encoding.GetEncoding("UTF-8").GetString(eByte); + inNumber++; + } + Console.WriteLine(arrayNumber + "まで代入完了"); + arrayNumber++; + } + } + else + { + Console.WriteLine("date.Length mod10 =! 0"); + quotient = bs.Length / 99; + //100の倍数ではないとき + f = 0; + inNumber = 0; + f = f + quotient - 1; + while (arrayNumber < 99) + { + while (inNumber < f) + { + eByte[0] = bs[inNumber]; + date[arrayNumber] = date[arrayNumber] + Encoding.GetEncoding("UTF-8").GetString(eByte); + inNumber++; + } + Console.WriteLine(arrayNumber + "まで代入完了"); + arrayNumber++; + f = f + quotient; + } + //余りをdate[100]に代入 + while (inNumber <= bs.Length - 1) + { + eByte[0] = bs[inNumber]; + date[arrayNumber] = date[arrayNumber] + Encoding.GetEncoding("UTF-8").GetString(eByte); + inNumber++; + } + Console.WriteLine(arrayNumber + "まで代入完了"); + } + + //encryptedファイルの生成を開始 + //配列の順に検索 + inNumber = 0; + int b; + StreamWriter outputFile = new StreamWriter(whereEncryptedFile); + while (inNumber < date.Length) + { + //参照すべき行を検索 + b = order[inNumber]; + + //参照して"written"に代入 + written = date[b]; + + //"encrypted"に書き込み + + outputFile.WriteLine(written); + + + Console.WriteLine(inNumber + "まで代入完了"); + inNumber++; + } + outputFile.Close(); + Console.WriteLine("Encrypt was done!"); + Console.WriteLine("The date key is " + bs.Length + "."); + Console.WriteLine("You have to remamber it!"); + } + + } +} diff --git a/Program.cs b/Program.cs @@ -1,6 +1,7 @@ using System.Text; using System; using System.IO; +using Cypher; string answers; Console.WriteLine("Hello world. I woke up."); @@ -27,7 +28,8 @@ static string Control() { if(answer == "encrypt") { - encrypt(); + Encrypt encrypt = new Encrypt(); + encrypt.encrypt(); } else { @@ -37,9 +39,10 @@ static string Control() } else { - if (answer == "createTestDate") + if (answer == "test") { - CreateDate(); + Test test = new Test(); + test.test(); } } } @@ -273,154 +276,6 @@ static void createKey() streamWriter.Close(); } -static void encrypt() -{ - //暗号化 - - //変数宣言 - int[] order = new int[100]; - string written; - string[] date = new string[100]; - int quotient; //商 - int amari = 0; //あまり - int inNumber = 0; //入力データ番号 - int arrayNumber = 0; //配列番号 - int chapter = 0; - int f = 0; - byte[] eByte = new byte[1]; - - //質問 - string whereDateFile; - string whereKeyFile; - string whereEncryptedFile; - - //自動テスト - whereDateFile = @"h:\date.txt"; - whereEncryptedFile = @"h:\encrypted.txt"; - whereKeyFile = @"h:\key.txt"; - - /* - whereEncryptedFile = Question("Where will you create encrypted file?", false); - whereDateFile = Question("Where is the file you want to encrypt?", true); - whereKeyFile = Question("Where is keyFile?", true); - */ - - //順序ファイルの読み込み - StreamReader sr = new StreamReader(whereKeyFile); - Console.WriteLine("KeyFile was readed"); - - - //配列に順序を書き込み - while (inNumber < 100) - { - order[inNumber] = int.Parse(sr.ReadLine()); - inNumber++; - } - Console.WriteLine("Order was written to int."); - - - //ファイルの内容をすべて読み込む - FileStream fs = new FileStream(whereDateFile, FileMode.Open); - byte[] bs = new byte[fs.Length]; - fs.Read(bs, 0, bs.Length); - fs.Close(); - Console.WriteLine("Date was readed to byte."); - - - - inNumber = 0; - - //100dyteを満たさない場合は残りのファイルにゼロを代入 - if(bs.Length < 100) - { - Console.WriteLine("File size is less than 100"); - int dateLength=bs.Length; - while(dateLength == 100) - { - bs[dateLength + 1] = 0; - dateLength = bs.Length; - } - } - - //date[]にビット単位で百分割したファイルを保存 - //参照したファイルのビット数が百の倍数か判定する。 - if (bs.Length % 100 == 0) - { - //100の倍数の場合 - Console.WriteLine("date.Length mod10 = 0"); - inNumber = 0; - quotient = bs.Length / 100; - //ファイルを百分割してdata配列に代入 - while(arrayNumber < 100) - { - f = f + quotient + 1; - while(inNumber < f) - { - eByte[0] = bs[inNumber]; - date[arrayNumber] = Encoding.GetEncoding("UTF-8").GetString(eByte); - inNumber++; - } - Console.WriteLine(arrayNumber + "まで代入完了"); - arrayNumber++; - } - } - else - { - Console.WriteLine("date.Length mod10 =! 0"); - quotient = bs.Length / 99; - //100の倍数ではないとき - f = 0; - inNumber = 0; - f = f + quotient - 1; - while (arrayNumber < 99) - { - while(inNumber < f) - { - eByte[0] = bs[inNumber]; - date[arrayNumber] = date[arrayNumber] + Encoding.GetEncoding("UTF-8").GetString(eByte); - inNumber++; - } - Console.WriteLine(arrayNumber + "まで代入完了"); - arrayNumber++; - f = f + quotient; - } - //余りをdate[100]に代入 - while(inNumber <= bs.Length - 1) - { - eByte[0] = bs[inNumber]; - date[arrayNumber] = date[arrayNumber] + Encoding.GetEncoding("UTF-8").GetString(eByte); - inNumber++; - } - Console.WriteLine(arrayNumber + "まで代入完了"); - } - - //encryptedファイルの生成を開始 - //配列の順に検索 - inNumber = 0; - int b; - StreamWriter outputFile = new StreamWriter(whereEncryptedFile); - while (inNumber < date.Length) - { - //参照すべき行を検索 - b = order[inNumber]; - - //参照して"written"に代入 - written = date[b]; - - //"encrypted"に書き込み - - outputFile.WriteLine(written); - - - Console.WriteLine(inNumber + "まで代入完了"); - inNumber++; - } - outputFile.Close(); - Console.WriteLine("Encrypt was done!"); - Console.WriteLine("The date key is " + bs.Length + "."); - Console.WriteLine("You have to remamber it!"); -} - static void CreateDate() { /* @@ -438,41 +293,7 @@ static void CreateDate() streamWriter.Close(); */ - //順番にデータを移行 - string whereEncrypted = @"h:\encrypted.txt"; - int howLongDateInt = 390; - int inNumber; - string[] encrypted = new string[howLongDateInt]; - byte[] dates = new byte[howLongDateInt]; - inNumber = 0; - //encrypted の読み込み - StreamReader streamReader = new StreamReader(whereEncrypted); - inNumber = 0; - while (inNumber < howLongDateInt) - { - encrypted[inNumber] = streamReader.ReadLine(); - Console.WriteLine(inNumber); - inNumber++; - } - streamReader.Close(); - Console.WriteLine("Encrypted date was readed"); - - //sortedを一つに統合 - string writtens = string.Concat(encrypted); - - //データを元の長さに整理 - //ファイルサイズが100以下の場合 - inNumber = 0; - while (writtens.Length > 0) - { - byte date = Encoding.GetEncoding("UTF-8").GetBytes(encrypted[inNumber]); - datess[inNumber]= date - } - - - //書きこ - File.WriteAllBytes(@"h:\tested.txt", dates); } static void Writedate(string[] date) diff --git a/test.cs b/test.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Cypher +{ + internal class Test + { + public void test() + { + //暗号化 + + //変数宣言 + int[] order = new int[100]; + string written; + string[] date = new string[100]; + int quotient; //商 + int amari = 0; //あまり + int inNumber = 0; //入力データ番号 + int arrayNumber = 0; //配列番号 + int chapter = 0; + int f = 0; + byte[] eByte = new byte[1]; + + //質問 + string whereDateFile; + string whereKeyFile; + string whereEncryptedFile; + + //自動テスト + whereDateFile = @"h:\date.txt"; + whereEncryptedFile = @"h:\encrypted.txt"; + whereKeyFile = @"h:\key.txt"; + + /* + whereEncryptedFile = Question("Where will you create encrypted file?", false); + whereDateFile = Question("Where is the file you want to encrypt?", true); + whereKeyFile = Question("Where is keyFile?", true); + */ + + //順序ファイルの読み込み + StreamReader sr = new StreamReader(whereKeyFile); + Console.WriteLine("KeyFile was readed"); + + + //配列に順序を書き込み + while (inNumber < 100) + { + order[inNumber] = int.Parse(sr.ReadLine()); + inNumber++; + } + Console.WriteLine("Order was written to int."); + + + //ファイルの内容をすべて読み込む + FileStream fs = new FileStream(whereDateFile, FileMode.Open); + byte[] bs = new byte[fs.Length]; + fs.Read(bs, 0, bs.Length); + fs.Close(); + Console.WriteLine("Date was readed to byte."); + + + } + } +}