EncryptHelper加密对象-工具类

摘要:
usingSystem;usingSystem.IO;usingSystem.Security.Cryptography;usingSystem.Text;usingSystem.Web.Security;namespaceCommon.Utility{//////Author:Kt///DateCreated:2011-04-01///Description:加密对象-工具类/
usingSystem;
usingSystem.IO;
usingSystem.Security.Cryptography;
usingSystem.Text;
usingSystem.Web.Security;
namespaceCommon.Utility
{
    /// <summary>
    ///Author:Kt
    ///Date Created:2011-04-01
    ///Description:加密对象-工具类
    /// </summary>
    public classEncryptHelper
    {
        /// <summary>
        ///AES 解密
        /// </summary>
        /// <param name="content">内容</param>
        /// <param name="secretKey">私钥(长度: 16、24、32字节)</param>
        /// <returns></returns>
        public static string AESDecrypt(string content, stringsecretKey)
        {
            if (string.IsNullOrEmpty(content)) return null;
            Byte[] toEncryptArray =Convert.FromBase64String(content);
            System.Security.Cryptography.RijndaelManaged rm = newSystem.Security.Cryptography.RijndaelManaged
            {
                Key =Encoding.UTF8.GetBytes(secretKey),
                Mode =System.Security.Cryptography.CipherMode.ECB,
                Padding =System.Security.Cryptography.PaddingMode.PKCS7
            };
            System.Security.Cryptography.ICryptoTransform cTransform =rm.CreateDecryptor();
            Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
            returnEncoding.UTF8.GetString(resultArray);
        }
        /// <summary>
        ///AES 加密
        /// </summary>
        /// <param name="content">内容</param>
        /// <param name="secretKey">私钥(长度: 16、24、32字节)</param>
        /// <returns></returns>
        public static string AESEncrypt(string content, stringsecretKey)
        {
            byte[] keyArray =UTF8Encoding.UTF8.GetBytes(secretKey);
            byte[] toEncryptArray =UTF8Encoding.UTF8.GetBytes(content);
            RijndaelManaged rDel = newRijndaelManaged();
            rDel.Key =keyArray;
            rDel.Mode =CipherMode.ECB;
            rDel.Padding =PaddingMode.PKCS7;
            ICryptoTransform cTransform =rDel.CreateEncryptor();
            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
            return Convert.ToBase64String(resultArray, 0, resultArray.Length);
        }
        /// <summary>
        ///MD5 加密
        /// </summary>
        /// <param name="content">内容</param>
        /// <returns></returns>
        public static string Md5(stringcontent)
        {
            return FormsAuthentication.HashPasswordForStoringInConfigFile(content, "MD5");
        }
        /// <summary>
        ///MD5 加密
        /// </summary>
        /// <param name="content">内容</param>
        /// <param name="encode">编码</param>
        /// <returns>签名字符串</returns>
        public static string Md5(stringcontent, Encoding encode)
        {
            var result = newStringBuilder();
            var md5 = newMD5CryptoServiceProvider();
            var bytes =md5.ComputeHash(encode.GetBytes(content));
            foreach (var item inbytes)
                result.Append(item.ToString("x").PadLeft(2, '0'));
            returnresult.ToString();
        }
        /// <summary>
        ///3DES 解密
        /// </summary>
        /// <param name="content">内容</param>
        /// <param name="secretKey">私钥</param>
        /// <param name="ivs">向量</param>
        /// <returns></returns>
        public static string DESDecrypt(string content, string secretKey, stringivs)
        {
            SymmetricAlgorithm mCSP = newTripleDESCryptoServiceProvider();
            mCSP.Mode =CipherMode.CBC;
            mCSP.Padding =PaddingMode.PKCS7;
            mCSP.Key =Encoding.UTF8.GetBytes(secretKey);
            mCSP.IV =Encoding.UTF8.GetBytes(ivs);
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            byte[] byt;
            ct =mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
            byt =Convert.FromBase64String(content);
            ms = newMemoryStream();
            cs = newCryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 0, byt.Length);
            cs.FlushFinalBlock();
            cs.Close();
            returnEncoding.UTF8.GetString(ms.ToArray());
        }
        /// <summary>
        ///3DES 加密
        /// </summary>
        /// <param name="content">内容</param>
        /// <param name="secretKey">私钥</param>
        /// <param name="ivs">向量</param>
        /// <returns></returns>
        public static string DESEncrypt(string content, string secretKey, stringivs)
        {
            SymmetricAlgorithm mCSP = newTripleDESCryptoServiceProvider();
            mCSP.Mode =CipherMode.CBC;
            mCSP.Padding =PaddingMode.PKCS7;
            mCSP.Key =Encoding.UTF8.GetBytes(secretKey);
            mCSP.IV =Encoding.UTF8.GetBytes(ivs);
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            byte[] byt;
            ct =mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
            byt =Encoding.UTF8.GetBytes(content);
            ms = newMemoryStream();
            cs = newCryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 0, byt.Length);
            cs.FlushFinalBlock();
            cs.Close();
            returnConvert.ToBase64String(ms.ToArray());
        }
    }
}
usingSystem;
usingSystem.Text;
namespaceCommon.Utility.Tests
{
    /// <summary>
    ///运行示例
    /// </summary>
    internal partial classProgram
    {
        private static void Main_EncryptHelper(string[] args)
        {
            string str = "需要加密的字符串12345678";
            string md5_1 =EncryptHelper.Md5(str);
            string md5_2 =EncryptHelper.Md5(str, Encoding.UTF8);
            str = "10086";
            string secretKey_AES = Guid.NewGuid().ToString("N");
            string JiaMi =EncryptHelper.AESEncrypt(str, secretKey_AES);
            string JieMi =EncryptHelper.AESDecrypt(JiaMi, secretKey_AES);
            string secretKey_DES = "fsT7ObM1nEnrRAGO1djI2YBi";
            string ivs_DES = "GUGlYE1g";
            JiaMi =EncryptHelper.DESEncrypt(str, secretKey_DES, ivs_DES);
            JieMi =EncryptHelper.DESDecrypt(JiaMi, secretKey_DES, ivs_DES);
        }
    }
}

免责声明:文章转载自《EncryptHelper加密对象-工具类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇商店管理系统源代码(三)shell 参数意义和重定向下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

尚硅谷《谷粒商城项目总结》

1、前言 花了几天的时间把尚硅谷的视频项目看完了,跟着做了一遍,基本上没啥大的问题,有几个小问题也做了总结。 技术方面除了 vue/nacos 没用过,其他的基本都用过,我们公司实际开发中用的也就是这一套东西。 中间的不想看,可以直接点击目录,看总结,总结里有你针对此项目所有的总结及问题解决的说明 1.1技术栈 springcloud 统一配置中心:apo...

php图片压缩

php图片压缩 能对图片的大小、质量进行压缩。 <?php class ThumbHandler {     var $dst_img;// 目标文件     var $h_src; // 图片资源句柄     var $h_dst;// 新图句柄     var $h_mask;// 水印句柄     var $img_create_quality...

C# + ArcEngine 常用方法(不定时更新)

1、Arcengine调用GP服务,抛出异常方法 object sev = null; try{ Application.DoEvents(); gp.Execut...

在datasnap 中使用unidac 访问数据(服务器端)

从delphi 6 开始,datasnap 作为delphi 自带的多层框架,一直更新到最新的delphi 10.3 。同时逐步增加了很多新的功能 ,比如支持REST 调用,支持 IIS ,apache 等服务器。今天简单介绍一下如何在datasnap 中使用unidac 访问数据库。 首先,按照向导生成一个标准的datasnap 服务器。 、...

Java学习第十五章 之 Map、可变参数、Collections

1 /* 2 3 Map:存储键值对 4 5 键不能重复存储,值可以重复 6 7 每一个键对应一个值 8 9 方法: 10 11 v put(K key , V value)将指定的键和值添加到集合中 12 13 v get(Object o...

Spring Boot配置文件详解:自定义属性、随机数、多环境配置

自定义属性与加载 我们在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,我们可以如下方式直接定义: application-dev.yml 1 com.didispace.blog: 2 3 name: 程序猿DD 4 5 title: Spring Boot教程 6 7 desc: ${com.didispace.blog.na...