Asp.net 加密解密类

网友投稿 374 2022-06-16


这里给大家一个现成的C#加密解密类,由 admin10000.com 提供,包含MD5、SHA1、DES加密和解密,Base64编码解码。

首先导入命名空间

using System.Web.Security;

using System.Security.Cryptography;

using System.Text;

using System.IO;

///

/// EncryptHelper 来自 Admin10000.com

///

public class EncryptHelper

{

        // 提供8个字符作为DES密钥(程序自动截取前8个字符)

        private static string key = "admin10000.com";

        ///

        /// DES对称加密解密的密钥

        ///

        public static string Key

        {

                get

                {

                        return key;

                }

                set

                {

                        key = value;

                }

        }

        ///

        /// MD5 加密(不可逆加密)

        ///

        /// 要加密的原始字串

        ///

        public static string MD5Encrypt(string pass)

        {    

                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();

                byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(pass));

                md5.Clear();

                string strResult = BitConverter.ToString(bytResult);

                strResult = strResult.Replace("-", "");

                return strResult;        

                /* 另一种方法

                pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "MD5");

                return pass;

                */    

        }

        ///

        /// SHA1 加密(不可逆加密)

        ///

        /// 要加密的原始字串

        ///

        public static string SHA1Encrypt(string pass)

        {

                System.Security.Cryptography.SHA1 sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();

                byte[] bytResult = sha1.ComputeHash(System.Text.Encoding.UTF8.GetBytes(pass));

                sha1.Clear();

                string strResult = BitConverter.ToString(bytResult);

                strResult = strResult.Replace("-", "");

                return strResult;

                /* 另一种方法

                pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "SHA1");

                return pass;

                */

        }

        ///

        /// DES加密字符串

        ///

        /// 待加密的字符串

        /// 加密成功返回加密后的字符串,失败返回源串

        public static string DESEncrypt(string encryptString)

        {

                try

                {

                        byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8));

                        byte[] rgbIV = rgbKey;

                        byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);

                        DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();

                        MemoryStream mStream = new MemoryStream();

                        CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

                        cStream.Write(inputByteArray, 0, inputByteArray.Length);

                        cStream.FlushFinalBlock();

                        cStream.Close();

                        return Convert.ToBase64String(mStream.ToArray());

                }

                catch

                {

                        return encryptString;

                }

        }

        ///

        /// DES解密字符串

        ///

        /// 待解密的字符串

        /// 解密成功返回解密后的字符串,失败返源串

        public static string DESDecrypt(string decryptString)

        {

                try

                {

                        byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8));

                        byte[] rgbIV = rgbKey;

                        byte[] inputByteArray = Convert.FromBase64String(decryptString);

                        DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();

                        MemoryStream mStream = new MemoryStream();

                        CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

                        cStream.Write(inputByteArray, 0, inputByteArray.Length);

                        cStream.FlushFinalBlock();

                        cStream.Close();

                        return Encoding.UTF8.GetString(mStream.ToArray());

                }

                catch

                {

                        return decryptString;

                }

        }

        ///

        /// 将普通字符串编码为BASE64字串

        ///

        /// 源字符串

        ///

        public static string Base64Encode(string str)

        {

                return Convert.ToBase64String(Encoding.UTF8.GetBytes(str));

        }

        ///

        /// 解码BASE64字串

        ///

        /// Base64字串

        ///

        public static string Base64Decode(string base64Str)

        {

                return Encoding.UTF8.GetString(Convert.FromBase64String(base64Str));

        }

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Asp.net 后台添加CSS、JS、Meta标签
下一篇:Asp.net 获取服务器信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~