C#DES加密

来源:互联网 发布:淘宝衣服缩水秀胸 编辑:程序博客网 时间:2024/06/06 04:25

DES是对称加密,原理去网上查,很详细

                public String ToDES(string encryptString)
                {

            String key="abcdefgh";

           //密钥

            byte[] keyBytes = Encoding.UTF8.GetBytes(key);

            //向量,防止原文中相同的明文部分,加密后也相同
            byte[] keyIV = keyBytes;
            byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Convert.ToBase64String(mStream.ToArray());
                }

 

               public String FromDES(string decryptString)

               {

            String key="abcdefgh";

            byte[] keyBytes = Encoding.UTF8.GetBytes(key);

            byte[] keyIV = keyBytes;
            byte[] inputByteArray = Convert.FromBase64String(decryptString);
            DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Encoding.UTF8.GetString(mStream.ToArray());

               }

 

 

现在随着计算机性能的提高,简单的DES加密容易被破解,现在普遍使用三重DES加密,原理是一样的,

使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES.

在C#中使用TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();进行三重DES加密,其他一样。

原创粉丝点击