有一些数据需要保存在文件中,程序启动时读取,同时要求不能让用户看清楚文件的内容。
我目前想到的方法如下:
1.复合文档.
C#做不了就用VC,独立的不行就把WORD引用进来
2.自己对文本加密
3.保存在数据库中并对数据库设置密码但是这些方法都不是非常的理想。我的想法是操作简单,只需要关心读写,如同复合文档那
样,就达到很好的加密效果;同时又不需要别的库或者组件的支持。不知道可能不?哪位有
什么好的建议可以指点一下么?
我目前想到的方法如下:
1.复合文档.
C#做不了就用VC,独立的不行就把WORD引用进来
2.自己对文本加密
3.保存在数据库中并对数据库设置密码但是这些方法都不是非常的理想。我的想法是操作简单,只需要关心读写,如同复合文档那
样,就达到很好的加密效果;同时又不需要别的库或者组件的支持。不知道可能不?哪位有
什么好的建议可以指点一下么?
public static void SaveToConfig(string connStr)
{
XmlDocument doc = new XmlDocument();
string fn = "XXXX.exe.config";doc.Load(fn);XmlNodeList nodes = doc.GetElementsByTagName("add");for (int i = 0; i < nodes.Count; i++)
{
XmlAttribute att = nodes[i].Attributes["key"];
if (att.Value == "SQLConectionString")
{
att = nodes[i].Attributes["value"];
att.Value = connStr;
break;
}
}doc.Save(fn);
}//加密:------------------------------------
public static string Encode(string data)
{
byte[] aKey = System.Text.ASCIIEncoding.ASCII.GetBytes(GetProcessID());
byte[] aIV = System.Text.ASCIIEncoding.ASCII.GetBytes(GetProcessID());DESCryptoServiceProvider cp = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, cp.CreateEncryptor(aKey, aIV),
CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cs);sw.Write(data);
sw.Flush();
cs.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}//读取:---------------------------------
private static readonly string userName = ConfigurationManager.AppSettings.Get("SQLConectionString");
//解密:-----------------------------------------
public static string Decode(string data)
{
byte[] aKey = System.Text.ASCIIEncoding.ASCII.GetBytes(GetProcessID());
byte[] aIV = System.Text.ASCIIEncoding.ASCII.GetBytes(GetProcessID());byte[] Enc;
try
{
Enc = Convert.FromBase64String(data);
}
catch
{
return null;
}DESCryptoServiceProvider cp = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(Enc);
CryptoStream cs = new CryptoStream(ms, cp.CreateDecryptor(aKey, aIV),
CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
C#写成c#不解释!!!!!!!!!!!!!!!!!!!!!!!!!!!!