美文网首页
Des 对称可逆加密

Des 对称可逆加密

作者: 敏徕 | 来源:发表于2019-08-23 16:08 被阅读0次
  • 对称加密的思路非常简单,就是含有一个称为密钥的东西,在消息发送前使用密钥对消息进行加密,在对方收到消息之后,使用相同的密钥进行解密。

  • 根据密钥来产生加密后的消息(密文)的这一加工过程,由加密算法来完成,加密算法通常是公开的。它的流程如下:
    1.发送方使用密钥对消息进行加密。
    2.接收方使用同样的密钥对消息进行解密。

  • 对称加密存在这样两个问题:
    1.虽然可以通过密钥来保证消息安全地进行传递,但是如何确保密钥安全地进行传递?因为发送者和接收者总有一次初始的通信,用来传递密钥,此时的安全如何保证?
    2.接收者虽然可以根据密钥来解密消息,但因为存在上面的问题,消息有可能是由第三方(非法获得密钥)发来的,而接收方无法辨别。

优点:速度快
缺点:密钥管理不方便,要求共享密钥(有致命风险)。
密钥长度:8
    /// <summary>
    /// DES AES Blowfish
    ///  对称加密算法的优点是速度快,
    ///  缺点是密钥管理不方便,要求共享密钥。
    ///  可逆对称加密  密钥长度8
    /// </summary>
    public class DesEncrypt
    {
        private static byte[] _rgbKey = ASCIIEncoding.ASCII.GetBytes(Constant.DesKey.Substring(0, 8));
        private static byte[] _rgbIV = ASCIIEncoding.ASCII.GetBytes(Constant.DesKey.Insert(0, "w").Substring(0, 8));

        /// <summary>
        /// DES 加密
        /// </summary>
        /// <param name="text">需要加密的值</param>
        /// <returns>加密后的结果</returns>
        public static string Encrypt(string text)
        {
            DESCryptoServiceProvider dsp = new DESCryptoServiceProvider();
            using (MemoryStream memStream = new MemoryStream())
            {
                CryptoStream crypStream = new CryptoStream(memStream, dsp.CreateEncryptor(_rgbKey, _rgbIV), CryptoStreamMode.Write);
                StreamWriter sWriter = new StreamWriter(crypStream);
                sWriter.Write(text);
                sWriter.Flush();
                crypStream.FlushFinalBlock();
                memStream.Flush();
                return Convert.ToBase64String(memStream.GetBuffer(), 0, (int)memStream.Length);
            }
        }

        /// <summary>
        /// DES解密
        /// </summary>
        /// <param name="encryptText"></param>
        /// <returns>解密后的结果</returns>
        public static string Decrypt(string encryptText)
        {
            DESCryptoServiceProvider dsp = new DESCryptoServiceProvider();
            byte[] buffer = Convert.FromBase64String(encryptText);

            using (MemoryStream memStream = new MemoryStream())
            {
                CryptoStream crypStream = new CryptoStream(memStream, dsp.CreateDecryptor(_rgbKey, _rgbIV), CryptoStreamMode.Write);
                crypStream.Write(buffer, 0, buffer.Length);
                crypStream.FlushFinalBlock();
                return ASCIIEncoding.UTF8.GetString(memStream.ToArray());
            }
        }
    }

    public static class Constant
    {
        public static string DesKey = AppSettings("DesKey", "ruanmou1");


        private static T AppSettings<T>(string key, T defaultValue)
        {
            var v = ConfigurationManager.AppSettings[key];
            return String.IsNullOrEmpty(v) ? defaultValue : (T)Convert.ChangeType(v, typeof(T));
        }

    }

相关文章

  • Des 对称可逆加密

    对称加密的思路非常简单,就是含有一个称为密钥的东西,在消息发送前使用密钥对消息进行加密,在对方收到消息之后,使用相...

  • DES、AES、RSA等常用加解密算法说明

    备用,参考自【DES、AES、RSA的区别】 加密一般分为可逆加密和不可逆加密,其中可逆加密一般又分为对称加密和非...

  • 03对称加密算法

    对称加密的特点 加密/解密使用相同的密钥 是可逆的 经典算法 DES 3DES AES 废话不多说 直接上 工具类...

  • 密码学及iOS签名(一) —— 加密解密

    加密解密类型 对称加密 公钥密码(非对称加密) 对称加密(常见的DES、 3DES、AES) 在对称密码中,加密、...

  • 对称加密与非对称加密

    一.对称加密 常用的对称加密DES、AES,DES也有衍生的3DES等加密方式 对称加密用到的加密模式有ECB、C...

  • RSA+AES加密

    前言 对称加密算法(不可逆的,传统加密算法)Hash加密算法/散列算法- DES (数据加密标准(用的少,因为强...

  • iOS逆向基础04-密码学

    一. 加密常识 1.1 对称加密和非对称加密 对称加密DES:加密标准3DES:加强版DESAES:现在的加密标准...

  • android 3DES加密和MD5加密

    经常使用加密算法:DES、3DES、RC4、AES,RSA等;对称加密:des,3des,aes非对称加密:rsa...

  • Android 加密解密的几种方式总结

    经常使用加密算法:DES、3DES、RC4、AES,RSA等; 对称加密:des,3des,aes 非对称加密:r...

  • 密码学基础(二):对称加密

    什么是对称加密 加密和解密使用相同的秘钥称为对称加密。 主流的对称加密算法 DES:已经淘汰3DES:相对于DES...

网友评论

      本文标题:Des 对称可逆加密

      本文链接:https://www.haomeiwen.com/subject/lnjtectx.html