###実現したいこと
暗号化されたテキストファイルと復号プログラムがあります。
ここから(再)暗号化プログラムを作成したいのですが、復号プログラムを少し変えるだけで暗号化プログラムにできたりするのでしょうか?
###復号プログラム
C#
1using System; 2 3namespace Sample 4{ 5 class Sample 6 { 7 static void Main() 8 { 9 10 Sample sample = new Sample(); 11 Console.WriteLine(sample.DecS(".....(ここに暗号化文を入れる)","aaa")); 12 13 14 } 15 16 private string DecS(string text, string p) 17 { 18 System.Security.Cryptography.RijndaelManaged _rijndael = new System.Security.Cryptography.RijndaelManaged(); 19 20 byte[] _key, _iv; 21 GenerateKeyFromPassWord(p, _rijndael.KeySize, out _key, _rijndael.BlockSize, out _iv); 22 _rijndael.Key = _key; 23 _rijndael.IV = _iv; 24 25 26 27 System.Security.Cryptography.ICryptoTransform _decryptor = _rijndael.CreateDecryptor(); 28 29 byte[] _strByte = System.Convert.FromBase64String(text); 30 31 byte[] _decByte = _decryptor.TransformFinalBlock(_strByte, 0, _strByte.Length); 32 _decryptor.Dispose(); 33 34 35 36 return System.Text.Encoding.UTF8.GetString(_decByte); 37 } 38 39 public static void GenerateKeyFromPassWord(string pass, int keySize, out byte[] key, int blockSize, out byte[] iv) 40 { 41 byte[] _salt = System.Text.Encoding.UTF8.GetBytes("これがsaltとなります"); 42 43 System.Security.Cryptography.Rfc2898DeriveBytes _deviceBytes = new System.Security.Cryptography.Rfc2898DeriveBytes(pass, _salt); 44 _deviceBytes.IterationCount = 1000; 45 46 key = _deviceBytes.GetBytes(keySize / 8); 47 iv = _deviceBytes.GetBytes(blockSize / 8); 48 } 49 } 50}
復号プログラムは、"GenerateKeyFromPassWord"関数で、パスワードからkeyとivを作成し、rijndaelのdecryptorでkey/ivを元に復号しているものと理解しています。
その逆(暗号化)を実現し、復号→編集→再暗号化→復号...と出来るようにしたいのですが、どうすればいいのかさっぱり見当がつきません。
非常におおざっぱな質問で大変恐縮に思っているのですが、ヒントだけでも頂けると幸いです...!
まずは、暗号化のプログラムは既にある復号プログラムを元に作ることができるのか、それとも全く別の情報が必要になるのかが知りたいと思っております。。。
回答1件
あなたの回答
tips
プレビュー