Я изучаю алгоритмы, и я запрограммировал консольный проект, работающий с шифрованием Rijndae, с заданным IV и ключом.
Это действительно не работает, так как не вносит никаких изменений в данную строку, что бы вы ниВвод будет выводить ту же строку.
Может кто-нибудь сказать мне или направить меня через?Я действительно не знаю, где я делаю не так
Заранее спасибо
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace RijndaelManage
{
class Rijndael
{
public static void Main()
{
try
{
string original = "input data here";
using (RijndaelManaged myRijndael = new RijndaelManaged())
{
byte[] encrypted = EncryptStringToBytes(original);
string aftdecryp = DecryptStringFromBytes(encrypted);
Console.WriteLine("Original: {0}", original);
Console.WriteLine("After Decryption: {0}", aftdecryp);
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}
public static byte[] EncryptStringToBytes(string plainText)
{
byte[] encrypted;
if (plainText == null)
{
goto TR_0000;
}
else if (plainText.Length > 0)
{
using (RijndaelManaged rijAlg = new RijndaelManaged())
{
string s = "NigeroTomoyo!@#$";
string str2 = "8321947192739743";
rijAlg.KeySize = 0x80;
rijAlg.Mode = CipherMode.CBC;
rijAlg.Key = Encoding.UTF8.GetBytes(s);
rijAlg.IV = Encoding.UTF8.GetBytes(str2);
ICryptoTransform encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV);
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter writer = new StreamWriter(csEncrypt))
{
writer.Write(plainText);
}
encrypted = msEncrypt.ToArray();
}
}
}
}
else
{
goto TR_0000;
}
return encrypted;
TR_0000:
throw new ArgumentNullException("plainText");
}
static string DecryptStringFromBytes(byte[] cipherText)
{
string plaintext;
if (cipherText == null)
{
goto TR_0000;
}
else if (cipherText.Length > 0)
{
plaintext = null;
using (RijndaelManaged rijAlg = new RijndaelManaged())
{
string s = "NigeroTomoyo!@#$";
string str3 = "8321947192739743";
rijAlg.KeySize = 0x80;
rijAlg.Mode = CipherMode.CBC;
rijAlg.Key = Encoding.UTF8.GetBytes(s);
rijAlg.IV = Encoding.UTF8.GetBytes(str3);
ICryptoTransform decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV);
using (MemoryStream msDecrypt = new MemoryStream(cipherText))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
plaintext = srDecrypt.ReadToEnd();
}
}
}
}
}
else
{
goto TR_0000;
}
return plaintext;
TR_0000:
throw new ArgumentNullException("cipherText");
}
}
}