日期:2014-05-17  浏览次数:20912 次

c#如何对TXT文档里的内容进行MD5加密和解密
比如我现在有一个TXT文档,文件名叫123.txt
现在想通过C#读取它,然后再将里面所有的内容加密。
加密结束后如果有人直接打开这个TXT文档,里面就是乱码(就是MD5加密后的所显示的结果啦)

请问怎么实现呢
最好有具体的代码
本人初学

------解决方案--------------------
尝试搜索 可逆加密 和 不可逆加密 
MD5是不对称加密。可逆加密有3DES等。
http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.aspx
------解决方案--------------------
引用:
引用:是啊,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);