我使用rijndael加密方法加密配置文件,以保证客户端系统的安全。但是在加密之后,当生成新文件时,它会附带管理员凭据,但我无法读取它。
public void EncryptFile(string inputFile, string outputFile)
{
try
{
string password = @"myKey"; // Your Key Here
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);
string cryptFile = outputFile;
FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);
FileStream fsIn = new FileStream(inputFile, FileMode.Open);
int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);
fsIn.Close();
cs.Close();
fsCrypt.Close();
FileInfo fi = new FileInfo(inputFile);
fi.Delete();
}
catch
{
Console.WriteLine("Encryption failed!", "Error");
}
}
我正在使用这种方法。当我在构建模式下运行它时,它可以正常工作,但是当我创建一个设置时,它会失败,并创建带有管理员凭证的加密文件,我无法读取。我正在使用Install Shield 2013限量版。