zoukankan      html  css  js  c++  java
  • DES加密解密方法

    1.加密方法
     1/// <summary>
     2        /// 加密方法
     3        /// </summary>
     4        /// <param name="data">要加密的字符串</param>
     5        /// <param name="KEY_64">密钥</param>
     6        /// <param name="IV_64">密钥</param>
     7        /// <returns>加密后的字符串</returns>

     8        public string Encode(string data,string KEY_64,string IV_64)
     9        {
    10            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
    11            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
    12
    13            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
    14            int i = cryptoProvider.KeySize;
    15            MemoryStream ms = new MemoryStream();
    16            CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);
    17   
    18            StreamWriter sw = new StreamWriter(cst);
    19            sw.Write(data);
    20            sw.Flush();
    21            cst.FlushFinalBlock();
    22            sw.Flush();
    23            return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);
    24   
    25        }

    2.解密方法

     1/// <summary>
     2        /// 解密方法
     3        /// </summary>
     4        /// <param name="data">要解密的字符串</param>
     5        /// <param name="KEY_64">密钥</param>
     6        /// <param name="IV_64">密钥</param>
     7        /// <returns>解密后的字符串</returns>

     8        public string Decode(string data,string KEY_64,string IV_64)
     9        {   
    10            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
    11            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
    12
    13            byte[] byEnc;
    14            try
    15            {
    16                byEnc = Convert.FromBase64String(data);
    17            }

    18            catch
    19            {
    20                return null;
    21            }

    22
    23            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
    24            MemoryStream ms = new MemoryStream(byEnc);
    25            CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
    26            StreamReader sr = new StreamReader(cst);
    27            return sr.ReadToEnd();
    28        }


    3。注意事项:加密时两个密钥和解密时两个密钥必须都相同,也就是四个都要一样,如
    1result=Encode(result,"VavicApp","VavicApp");
    2
    3connString=Decode(connString,"VavicApp","VavicApp");

    4.引用
    1using System.Security;
    2using System.Security.Cryptography;
  • 相关阅读:
    codeforces 540D Bad Luck Island (概率DP)
    Codevs 1205 单词反转(Vector以及如何输出string)
    Codeforces 977D Divide by three, multiply by two(拓扑排序)
    Codeforces 977B Two-gram(stl之string掉进坑)
    HDU 6186 CS Course (连续位运算)
    HDU 1005 Number Sequence(矩阵快速幂,快速幂模板)
    HDU 1004 Let the Balloon Rise(STL初体验之map)
    2018天梯赛、蓝桥杯、(CCPC省赛、邀请赛、ICPC邀请赛)校内选拔赛反思总结!
    Newcoder Wannafly13 B Jxy军训(费马小定理、分数在模意义下的值)
    TCP的可靠传输(依赖流量控制、拥塞控制、连续ARQ)
  • 原文地址:https://www.cnblogs.com/telephoner/p/174597.html
Copyright © 2011-2022 走看看