zoukankan      html  css  js  c++  java
  • [DEncrypt] C# DEncrypt加密/解密帮助类(转载)

    点击下载 DEncrypt.rar

    这个类是关于加密,解密的操作,文件的一些高级操作
    1.使用 缺省密钥字符串 加密/解密string
    2.使用 给定密钥字符串 加密/解密string
    3.使用 缺省密钥字符串 加密/解密/byte[]
    4.使用 给定密钥 加密/解密/byte[]
    看下面代码吧

    /// <summary>
    /// 联系方式:361983679  
    /// 更新网站:[url=http://www.cckan.net/thread-655-1-1.html]http://www.cckan.net/thread-655-1-1.html[/url]
    /// </summary>
    using System;
    using System.Security.Cryptography;
    using System.Text;
    namespace DotNet.Utilities
    {
        /// <summary>
        /// Encrypt 的摘要说明。
        /// </summary>
        public class DEncrypt
        {
            /// <summary>
            /// 构造方法
            /// </summary>
            public DEncrypt()
            {
            }
     
            #region 使用 缺省密钥字符串 加密/解密string
     
            /// <summary>
            /// 使用缺省密钥字符串加密string
            /// </summary>
            /// <param name="original">明文</param>
            /// <returns>密文</returns>
            public static string Encrypt(string original)
            {
                return Encrypt(original, "MATICSOFT");
            }
            /// <summary>
            /// 使用缺省密钥字符串解密string
            /// </summary>
            /// <param name="original">密文</param>
            /// <returns>明文</returns>
            public static string Decrypt(string original)
            {
                return Decrypt(original, "MATICSOFT", System.Text.Encoding.Default);
            }
     
            #endregion
     
            #region 使用 给定密钥字符串 加密/解密string
            /// <summary>
            /// 使用给定密钥字符串加密string
            /// </summary>
            /// <param name="original">原始文字</param>
            /// <param name="key">密钥</param>
            /// <param name="encoding">字符编码方案</param>
            /// <returns>密文</returns>
            public static string Encrypt(string original, string key)
            {
                byte[] buff = System.Text.Encoding.Default.GetBytes(original);
                byte[] kb = System.Text.Encoding.Default.GetBytes(key);
                return Convert.ToBase64String(Encrypt(buff, kb));
            }
            /// <summary>
            /// 使用给定密钥字符串解密string
            /// </summary>
            /// <param name="original">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static string Decrypt(string original, string key)
            {
                return Decrypt(original, key, System.Text.Encoding.Default);
            }
     
            /// <summary>
            /// 使用给定密钥字符串解密string,返回指定编码方式明文
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <param name="encoding">字符编码方案</param>
            /// <returns>明文</returns>
            public static string Decrypt(string encrypted, string key, Encoding encoding)
            {
                byte[] buff = Convert.FromBase64String(encrypted);
                byte[] kb = System.Text.Encoding.Default.GetBytes(key);
                return encoding.GetString(Decrypt(buff, kb));
            }
            #endregion
     
            #region 使用 缺省密钥字符串 加密/解密/byte[]
            /// <summary>
            /// 使用缺省密钥字符串解密byte[]
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static byte[] Decrypt(byte[] encrypted)
            {
                byte[] key = System.Text.Encoding.Default.GetBytes("MATICSOFT");
                return Decrypt(encrypted, key);
            }
            /// <summary>
            /// 使用缺省密钥字符串加密
            /// </summary>
            /// <param name="original">原始数据</param>
            /// <param name="key">密钥</param>
            /// <returns>密文</returns>
            public static byte[] Encrypt(byte[] original)
            {
                byte[] key = System.Text.Encoding.Default.GetBytes("MATICSOFT");
                return Encrypt(original, key);
            }
            #endregion
     
            #region  使用 给定密钥 加密/解密/byte[]
     
            /// <summary>
            /// 生成MD5摘要
            /// </summary>
            /// <param name="original">数据源</param>
            /// <returns>摘要</returns>
            public static byte[] MakeMD5(byte[] original)
            {
                MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
                byte[] keyhash = hashmd5.ComputeHash(original);
                hashmd5 = null;
                return keyhash;
            }
     
     
            /// <summary>
            /// 使用给定密钥加密
            /// </summary>
            /// <param name="original">明文</param>
            /// <param name="key">密钥</param>
            /// <returns>密文</returns>
            public static byte[] Encrypt(byte[] original, byte[] key)
            {
                TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
                des.Key = MakeMD5(key);
                des.Mode = CipherMode.ECB;
     
                return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
            }
     
            /// <summary>
            /// 使用给定密钥解密数据
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static byte[] Decrypt(byte[] encrypted, byte[] key)
            {
                TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
                des.Key = MakeMD5(key);
                des.Mode = CipherMode.ECB;
     
                return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
            }
     
            #endregion
        }
    }
  • 相关阅读:
    块拷贝
    Response.AddHeader函数中文件名的中文乱码问题的解决
    c#:如何往List>里添加 Dictionary<string,string>
    java的map中的containsKey 方法——判断是否包含指定的键名
    C# Hashtable 中的ContainsKey()方法
    C#的List的Contains方法 list的Contains方法是根据其元素类型定义的Equals方法来判断是否重复的
    C#从List Dictionary string, string 中查找指定的key,并修改对应的值
    C# 泛型Dictionary<string,string>的用法 ,ContarnsKey() 来判断键是否存存在
    C#去除list中的重复数据 倒叙遍历
    对象引用类型问题
  • 原文地址:https://www.cnblogs.com/lizeyan/p/3628451.html
Copyright © 2011-2022 走看看