C#加密后读取文件是什么样的?
我是一个C#初学者,我做了一个软件是用来存一些敏感信息的(账号,密码)而账号密码的信息是保存在XML文件中的,别人到了我的安装目录下就可以直接从xml文件看到里面的账号密...
我是一个C#初学者,
我做了一个软件是用来存一些敏感信息的(账号,密码)
而账号密码的信息是保存在XML文件中的,别人到了我的安装目录下就可以直接从xml文件看到里面的账号密码了。
如果我把账号和密码加密后保存在XML中
当我在读取XML文件内容的时候,
如果不解密,显示的内容是不是加密后的信息?
那怎么解密呢?
什么叫不是自己的加密法呢?难道有统一的加密发嘛?
那加密后,我要读数据,解密呢??
密码登陆的验证,可以用你的方法。
但是现在还有一个问题,
我作了一个对话框,是用来显示信息内容的,
也就是说这个对话框读取XML文件中的信息,
然后在对话框中显示。
如果信息加密后存在XML里面,如果不解密,
被读取出来的话不就是加密后的信息了嘛? 展开
我做了一个软件是用来存一些敏感信息的(账号,密码)
而账号密码的信息是保存在XML文件中的,别人到了我的安装目录下就可以直接从xml文件看到里面的账号密码了。
如果我把账号和密码加密后保存在XML中
当我在读取XML文件内容的时候,
如果不解密,显示的内容是不是加密后的信息?
那怎么解密呢?
什么叫不是自己的加密法呢?难道有统一的加密发嘛?
那加密后,我要读数据,解密呢??
密码登陆的验证,可以用你的方法。
但是现在还有一个问题,
我作了一个对话框,是用来显示信息内容的,
也就是说这个对话框读取XML文件中的信息,
然后在对话框中显示。
如果信息加密后存在XML里面,如果不解密,
被读取出来的话不就是加密后的信息了嘛? 展开
2个回答
展开全部
那要看你怎么加密了
如果是你自己定义的加密算法
再反过来就解密了
如果是你自己定义的加密算法
再反过来就解密了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MD5加密:
using System.Security.Cryptography;
public static String Encrypt(String str)
{
MD5 md5 = new MD5CryptoServiceProvider();
Byte[] data = System.Text.Encoding.Default.GetBytes(str);
Byte[] md5data = md5.ComputeHash(data);
String ss = "";
for (Int32 i = 0; i < md5data.Length; i++)
{
ss += md5data[i].ToString("X").PadLeft(2, '0');
}
return ss;
}
MD5算法无法解密,MD5算法所得到的加密串是唯一的,要想验证输入的帐号密码是否正确,只需要把输入的帐号密码用MD5加密后,再和文件里的比比就行了。
就算对方知道了文件里面的加密串,也无法破解原密码。
有关MD5算法,LZ可以在百度查查。
假设LZ你还需要把加密后的东西还原回去的话,那么我建议你不要使用成熟的可以加密的加密算法,因为这些算法有对应的解密算法,所以对方如果懂加密原理的话,是可以解密的。
所以我建议你自己定义一个加密解密算法,这个也很简单,把字符串加加减减,乘乘除除不就行了吗?或者把字符串变成二进制数组,然后对这个二进制数组处理一下,在转回去保存,要破解是很难的。
byte[] Code = Encoding.UTF8.GetBytes(str);//转成字节数组
有一个加密算法,采用密钥加密的。
//加密
public static String MiYao(String str)
{
String encryptKey = "Oyea";
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Encoding.Unicode.GetBytes(str);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length);
CStream.FlushFinalBlock();
return Convert.ToBase64String(MStream.ToArray());
}
//解密
public static String JieMi(String str)
{
String encryptKey = "Oyea";
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Convert.FromBase64String(str);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key,key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length);
CStream.FlushFinalBlock();
return Encoding.Unicode.GetString(MStream.ToArray());
}
using System.Security.Cryptography;
public static String Encrypt(String str)
{
MD5 md5 = new MD5CryptoServiceProvider();
Byte[] data = System.Text.Encoding.Default.GetBytes(str);
Byte[] md5data = md5.ComputeHash(data);
String ss = "";
for (Int32 i = 0; i < md5data.Length; i++)
{
ss += md5data[i].ToString("X").PadLeft(2, '0');
}
return ss;
}
MD5算法无法解密,MD5算法所得到的加密串是唯一的,要想验证输入的帐号密码是否正确,只需要把输入的帐号密码用MD5加密后,再和文件里的比比就行了。
就算对方知道了文件里面的加密串,也无法破解原密码。
有关MD5算法,LZ可以在百度查查。
假设LZ你还需要把加密后的东西还原回去的话,那么我建议你不要使用成熟的可以加密的加密算法,因为这些算法有对应的解密算法,所以对方如果懂加密原理的话,是可以解密的。
所以我建议你自己定义一个加密解密算法,这个也很简单,把字符串加加减减,乘乘除除不就行了吗?或者把字符串变成二进制数组,然后对这个二进制数组处理一下,在转回去保存,要破解是很难的。
byte[] Code = Encoding.UTF8.GetBytes(str);//转成字节数组
有一个加密算法,采用密钥加密的。
//加密
public static String MiYao(String str)
{
String encryptKey = "Oyea";
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Encoding.Unicode.GetBytes(str);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length);
CStream.FlushFinalBlock();
return Convert.ToBase64String(MStream.ToArray());
}
//解密
public static String JieMi(String str)
{
String encryptKey = "Oyea";
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Convert.FromBase64String(str);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key,key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length);
CStream.FlushFinalBlock();
return Encoding.Unicode.GetString(MStream.ToArray());
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询