比如我现在有一个TXT文档,文件名叫123.txt
现在想通过C#读取它,然后再将里面所有的内容加密。
加密结束后如果有人直接打开这个TXT文档,里面就是乱码(就是MD5加密后的所显示的结果啦)
请问怎么实现呢
最好有具体的代码
本人初学
------解决方案--------------------
尝试搜索 可逆加密 和 不可逆加密
MD5是不对称加密。可逆加密有3DES等。
------解决方案--------------------
引用:引用:是啊,MD5是不可逆加密,加密后无法解密。你这么做没有什么意义。
那有没有办法对他加密以后,虽然不可逆,但C#能读取里面的信息。
比如TXT的内容是12345,加密以后变成了!@#@!##@%¥¥#%¥……%&
但是C#读取的内容后,还能在TEXTBOX里显示12345
如果不能的话,那请问哪种加密可……
可以采用对称加密算法。
例如:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES
这样需要有一个公钥和私钥。公钥加密,私钥解密。
------解决方案--------------------
MD5加密后,在用md5验证可以得到密码到是一串字符,两者之间是相同的,可以验证通过
------解决方案--------------------
从 ASP.NET 跑过来看看,看到这个刚好我有现成的哈。。。就贴下代码,不好勿喷!!
/// <summary>
/// DES加密解密算法
/// </summary>
public class DES
{
/// <summary>
/// DES加密算法
/// sKey为8位或16位
/// </summary>
/// <param name="pToEncrypt">需要加密的字符串</param>
/// <param name="sKey">密钥</param>
/// <returns></returns>
public string DesEncrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}