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
        }
    }
  • 相关阅读:
    基于HTTP协议的轻量级简单队列服务-HTTPSQS
    PHP获取客户端IP
    编译安装Memcached并使用systemctl管理
    win10利用WSL2安装docker的2种方式
    如何提升前端基建的效能价值?
    如何衡量前端基建的效能价值?
    从面向对象角度看前端工程体系
    「前端工程化」该怎么理解?
    跨端方案的三大困境
    React 17 要来了,非常特别的一版
  • 原文地址:https://www.cnblogs.com/lizeyan/p/3628451.html
Copyright © 2011-2022 走看看