commit 246d625e821ecbfb8814141e192eeafbb4527791
parent 86e3f6b38747b00c9f3de50714e74f68da2b7057
Author: Minerva_juppiter <94231606+minerva-jupiter@users.noreply.github.com>
Date: Sat, 25 Jun 2022 23:56:14 +0900
Diffstat:
3 files changed, 62 insertions(+), 21 deletions(-)
diff --git a/Encrypt.cs b/Encrypt.cs
@@ -20,7 +20,7 @@ namespace Cypher
int amari = 0; //あまり
int inNumber = 0; //入力データ番号
int arrayNumber = 0; //配列番号
- int chapter = 0;
+ int Cchapter = 0;
int f = 0;
byte[] eByte = new byte[1];
diff --git a/ReadKeyFile.cs b/ReadKeyFile.cs
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Cypher
-{
- internal class ReadKeyFile
- {
- }
-}
diff --git a/test.cs b/test.cs
@@ -25,6 +25,7 @@ namespace Cypher
int f = 0;
byte[] eByte = new byte[1];
+
//質問
string whereDateFile;
string whereKeyFile;
@@ -47,12 +48,8 @@ namespace Cypher
//配列に順序を書き込み
- while (inNumber < 100)
- {
- order[inNumber] = int.Parse(sr.ReadLine());
- inNumber++;
- }
- Console.WriteLine("Order was written to int.");
+ ResdFiles resdFiles = new ResdFiles();
+ order = resdFiles.ReadKeyFile(whereKeyFile);
//ファイルの内容をすべて読み込む
@@ -62,12 +59,68 @@ namespace Cypher
fs.Close();
Console.WriteLine("Date was readed to byte.");
- //ここまでテスト完了
+ byte[] encrypted = new byte[bs.Length];
- //順序入れ替え
+ //ここまでテスト完了
+ int indexNumuber;
+ int indexEnd;
+ int indexStart;
+ int outNumber = 0;
+ if (bs.Length % 0 == 0)
+ {
+ quotient = bs.Length / 100;
+ //百で割り切れる場合
+ while(arrayNumber < 100)
+ {
+ indexNumuber = Array.IndexOf(order, arrayNumber);
+ indexStart = quotient * indexNumuber;
+ indexEnd = quotient * (indexNumuber+1);
+ inNumber = indexStart;
+ while (inNumber < indexEnd)
+ {
+ encrypted[outNumber] = bs[inNumber];
+ outNumber++;
+ }
+ arrayNumber++;
+ }
+ }
+ else
+ {
+ //割り切れない場合
+ quotient = bs.Length / 99;
+ amari = bs.Length - quotient * 99;
+ int where99 = Array.IndexOf(order, 99);
+ {
+ while(arrayNumber < 100)
+ {
+ indexNumuber = Array.IndexOf(order, arrayNumber);
+ if(indexNumuber < where99)
+ {
+ indexStart = quotient * indexNumuber;
+ indexEnd = quotient * (indexNumuber + 1);
+ }else if(indexNumuber == where99){
+ indexStart = where99 * quotient;
+ indexEnd = (where99+1) * quotient;
+ }
+ else
+ {
+ indexStart = (indexNumuber-1) * quotient + amari;
+ indexEnd = indexNumuber * quotient + amari;
+ }
+ inNumber = indexStart;
+ while(inNumber < indexEnd)
+ {
+ encrypted[outNumber] = bs[inNumber];
+ outNumber++;
+ }
+ arrayNumber++;
+ }
+ }
+ }
+
}