• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C#
  • 标签: C#  DES  加密  

资源简介

C#实现的DES加解密的类文件源代码、压缩等功能。

资源截图

代码片段和文件信息

 /**//// 
    /// DES
    /// 

    public class DES_
    {
        private DES mydes;
        public string Key;
        public string IV;
        /**//// 
        /// 对称加密类的构造函数
        /// 

        public DES_(string key)
        {
            mydes = new DESCryptoServiceProvider();
            Key = key;
            IV = “728#$$%^TyguyshdsufhsfwofnhKJHJKHIYhfiusf98*(^%$^&&(*&()$##@%%$RHGJJHHJ“;
        }
        /**//// 
        /// 对称加密类的构造函数
        /// 

        public DES_(string key string iv)
        {
            mydes = new DESCryptoServiceProvider();
            Key = key;
            IV = iv;
        }
        /**//// 
        /// 获得密钥
        /// 

        /// 密钥
        private byte[] GetLegalKey()
        {
            string sTemp = Key;
            mydes.GenerateKey();
            byte[] bytTemp = mydes.Key;
            int KeyLength = bytTemp.Length;
            if (sTemp.Length > KeyLength)
                sTemp = sTemp.Substring(0 KeyLength);
            else if (sTemp.Length < KeyLength)
                sTemp = sTemp.PadRight(KeyLength ‘ ‘);
            return ASCIIEncoding.ASCII.GetBytes(sTemp);
        }
        /**//// 
        /// 获得初始向量IV
        /// 

        /// 初试向量IV
        private byte[] GetLegalIV()
        {
            string sTemp = IV;
            mydes.GenerateIV();
            byte[] bytTemp = mydes.IV;
            int IVLength = bytTemp.Length;
            if (sTemp.Length > IVLength)
                sTemp = sTemp.Substring(0 IVLength);
            else if (sTemp.Length < IVLength)
                sTemp = sTemp.PadRight(IVLength ‘ ‘);
            return ASCIIEncoding.ASCII.GetBytes(sTemp);
        }
        /**//// 
        /// 加密方法
        /// 

        /// 待加密的串
        /// 经过加密的串
        public string Encrypt(string Source)
        {
            try
            {
                byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
                MemoryStream ms = new MemoryStream();
                mydes.Key = GetLegalKey();
                mydes.IV = GetLegalIV();
                ICryptoTransform encrypto = mydes.CreateEncryptor();
                CryptoStream cs = new CryptoStream(ms encrypto CryptoStreamMode.Write);
                cs.Write(bytIn 0 bytIn.Length);
                cs.FlushFinalBlock();
                ms.Close();
                byte[] bytOut = ms.ToArray();
                return Convert.Tobase64String(bytOut);
            }
            catch (Exception ex)
            {
                throw new Exception(“在文件加密的时候出现错误!错误提示: “ + ex.Message);
            }
        }
        /**//// 
        /// 解密方法
        /// 

        /// 待解密的串
        /// 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8747  2010-09-16 21:27  DES(使用去掉这里:加减密DES).cs

----------- ---------  ---------- -----  ----

                 8747                    1


评论

共有 条评论