zoukankan      html  css  js  c++  java
  • [C#] 常用工具类——加密解密类

    using System;
    using System.Configuration;
    using System.Collections.Generic;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.Security;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Drawing.Drawing2D;
    using System.IO;
    using System.Security.Cryptography;
     
    namespace Utils
    {
        /// <summary>
        /// <para> </para>
        ///  常用工具类——加密解密类
        /// <para> -------------------------------------------------</para>
        /// <para> StringEncode:返回 HTML 字符串的编码结果</para>
        /// <para> StringDecode:返回 HTML 字符串的解码结果</para>
        /// <para> UrlEncode:返回 URL 字符串的编码结果</para>
        /// <para> UrlDecode:返回 URL 字符串的解码结果</para>
        /// <para> DESEncrypt:DES加密</para>
        /// <para> DESDecrypt:DES解密</para>
        /// <para> MD5:MD5函数</para>
        /// <para> SHA256:SHA256函数</para>
        /// </summary>
        public class EncyptHelper
        {
            /// <summary>
            /// 32位Key值:
            /// </summary>
            public static byte[] DESKey = new byte[] { 0x03, 0x0B, 0x13, 0x1B, 0x23, 0x2B, 0x33, 0x3B, 0x43, 0x4B, 0x9B, 0x93, 0x8B, 0x83, 0x7B, 0x73, 0x6B, 0x63, 0x5B, 0x53, 0xF3, 0xFB, 0xA3, 0xAB, 0xB3, 0xBB, 0xC3, 0xEB, 0xE3, 0xDB, 0xD3, 0xCB };
     
            #region 返回 HTML 字符串的编码结果
            /// <summary>
            /// 返回 HTML 字符串的编码结果
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns>编码结果</returns>
            public static string StringEncode(string str)
            {
                return HttpUtility.HtmlEncode(str);
            }
            #endregion
     
            #region 返回 HTML 字符串的解码结果
            /// <summary>
            /// 返回 HTML 字符串的解码结果
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns>解码结果</returns>
            public static string StringDecode(string str)
            {
                return HttpUtility.HtmlDecode(str);
            }
            #endregion
     
            #region 返回 URL 字符串的编码结果
            /// <summary>
            /// 返回 URL 字符串的编码结果
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns>编码结果</returns>
            public static string UrlEncode(string str)
            {
                return HttpUtility.UrlEncode(str);
            }
            #endregion
     
            #region 返回 URL 字符串的解码结果
            /// <summary>
            /// 返回 URL 字符串的解码结果
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns>解码结果</returns>
            public static string UrlDecode(string str)
            {
                return HttpUtility.UrlDecode(str);
            }
            #endregion
     
            #region DES加密
            /// <summary>
            /// DES加密
            /// </summary>
            /// <param name="strSource">待加密字串</param>
            /// <returns>加密后的字符串</returns>
            public static string DESEncrypt(string strSource)
            {
                return DESEncrypt(strSource, DESKey);
            }
            /// <summary>
            /// DES加密
            /// </summary>
            /// <param name="strSource">待加密字串</param>
            /// <param name="key">Key值</param>
            /// <returns>加密后的字符串</returns>
            public static string DESEncrypt(string strSource, byte[] key)
            {
                SymmetricAlgorithm sa = Rijndael.Create();
                sa.Key = key;
                sa.Mode = CipherMode.ECB;
                sa.Padding = PaddingMode.Zeros;
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, sa.CreateEncryptor(), CryptoStreamMode.Write);
                byte[] byt = Encoding.Unicode.GetBytes(strSource);
                cs.Write(byt, 0, byt.Length);
                cs.FlushFinalBlock();
                cs.Close();
                return Convert.ToBase64String(ms.ToArray());
            }
            #endregion
     
            #region DES解密
            /// <summary>
            /// DES解密
            /// </summary>
            /// <param name="strSource">待解密的字串</param>
            /// <returns>解密后的字符串</returns>
            public static string DESDecrypt(string strSource)
            {
                return DESDecrypt(strSource, DESKey);
            }
            /// <summary>
            /// DES解密
            /// </summary>
            /// <param name="strSource">待解密的字串</param>
            /// <param name="key">32位Key值</param>
            /// <returns>解密后的字符串</returns>
            public static string DESDecrypt(string strSource, byte[] key)
            {
                SymmetricAlgorithm sa = Rijndael.Create();
                sa.Key = key;
                sa.Mode = CipherMode.ECB;
                sa.Padding = PaddingMode.Zeros;
                ICryptoTransform ct = sa.CreateDecryptor();
                byte[] byt = Convert.FromBase64String(strSource);
                MemoryStream ms = new MemoryStream(byt);
                CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Read);
                StreamReader sr = new StreamReader(cs, Encoding.Unicode);
                return sr.ReadToEnd();
            }
            #endregion        
     
            #region MD5函数
            /// <summary>
            /// MD5函数,需引用:using System.Security.Cryptography;
            /// </summary>
            /// <param name="str">原始字符串</param>
            /// <returns>MD5结果</returns>
            public static string MD5(string str)
            {
                byte[] b = Encoding.Default.GetBytes(str);
                b = new MD5CryptoServiceProvider().ComputeHash(b);
                string ret = "";
                for (int i = 0; i < b.Length; i++)
                    ret += b[i].ToString("x").PadLeft(2, '0');
                return ret;
            }
            #endregion
     
            #region SHA256函数
            /// <summary>
            /// SHA256函数
            /// </summary>
            /// /// <param name="str">原始字符串</param>
            /// <returns>SHA256结果</returns>
            public static string SHA256(string str)
            {
                byte[] SHA256Data = Encoding.UTF8.GetBytes(str);
                SHA256Managed Sha256 = new SHA256Managed();
                byte[] Result = Sha256.ComputeHash(SHA256Data);
                return Convert.ToBase64String(Result);  //返回长度为44字节的字符串
            }
            #endregion
        }
    }
    

      

  • 相关阅读:
    C++下载IE缓存大文件
    C++网页数据流转为本地文件,URLDownloadToFile
    关于CLISTCTRL的删除和vector的删除,必须倒序删除
    字符串转为 时间。时间差,几天,几小时,几分
    MFCS删除文件夹,非空文件夹
    string的c_str();转换成的是const char*类型 string的c_str();转换成CString,虽然可用,但是意义不一样,变量string不能共用。
    对话框透明,控件不透明(控件显示背景图)
    执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper”的子请求时出错。
    ffmpeg使用示例
    js图片放大效果
  • 原文地址:https://www.cnblogs.com/51net/p/3916053.html
Copyright © 2011-2022 走看看