Очень новый для C# - переход от действительно администратора в Powershell и Java. Я использую функцию MS для дешифрования файлов:Функция доступна во всех Win Forms
static void DecryptFile(string sInputFilename, string sOutputFilename, string sKey)
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
//A 64 bit key and IV is required for this provider.
//Set secret key For DES algorithm.
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
//Set initialization vector.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
//Create a file stream to read the encrypted file back.
FileStream fsread = new FileStream(sInputFilename,
FileMode.Open,
FileAccess.Read);
//Create a DES decryptor from the DES instance.
ICryptoTransform desdecrypt = DES.CreateDecryptor();
//Create crypto stream set to read and do a
//DES decryption transform on incoming bytes.
CryptoStream cryptostreamDecr = new CryptoStream(fsread,
desdecrypt,
CryptoStreamMode.Read);
//Print the contents of the decrypted file.
StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);
fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
fsDecrypted.Flush();
fsDecrypted.Close();
}
И в тот момент, я вызываю его в различных кнопок с помощью во всех различных формах:
string decryptionKey = File.ReadAllText(@"C:\ThickClient\secretKey.skey");
DecryptFile("C:\\ThickClient\\Encrypted.enc", "C:\\ThickClient\\tempPWDump.enc", decryptionKey);
string decryptedPW = File.ReadAllText(@"C:\ThickClient\tempPWDump.enc");
File.Delete(@"C:\ThickClient\tempPWDump.enc");
И я имею определить static void DecryptFile {code}
в каждой Форме и называть его новой переменной в каждой форме, чтобы использовать ее. Кажется сумасшедшим, где в формах Windows я могу определить его и установить глобальную переменную, чтобы она была доступна для каждой формы?
сделать PUBLIC статическим классом Decrypter? – Fredrik
Где это определено, в любой форме? И это для переменной или функции? – PnP
см. Отличный ответ Shadow Wizard ниже. Просто будьте осторожны с глобальными (aka, public) переменными, которые вы хотите добавить. Должны ли формы знать/устанавливать тип кодирования? скорее всего, нет, они должны (я бы предпочел) просто иметь возможность вызвать метод Decrypt() общедоступного (глобального) класса и позволить этому позаботиться о деталях. – Fredrik