`
zxlyecf2
  • 浏览: 133112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

加密解密帮助类

    博客分类:
  • C#
阅读更多

1.CryptoHelper加密解密帮助类

/// <summary>
    /// 加密解密帮助类
    /// </summary>
    public class CryptoHelper
    {
        private readonly string IV = "SuFjcEmp/TE=";
        private readonly string Key = "KIPSToILGp6fl+3gXJvMsN4IajizYBBT";

        public CryptoHelper()
        {

        }

        /// <summary>
        /// 获取加密服务类
        /// </summary>
        /// <returns></returns>
        private TripleDESCryptoServiceProvider GetCryptoProvider()
        {
            TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();

            provider.IV = Convert.FromBase64String(IV);
            provider.Key = Convert.FromBase64String(Key);

            return provider;

        }

        /// <summary>
        /// 获取加密后的字符串
        /// </summary>
        /// <param name="inputValue">输入值.</param>
        /// <returns></returns>
        public string GetEncryptedValue(string inputValue)
        {
            TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

            // 创建内存流来保存加密后的流
            MemoryStream mStream = new MemoryStream();

            // 创建加密转换流
            CryptoStream cStream = new CryptoStream(mStream,

            provider.CreateEncryptor(), CryptoStreamMode.Write);
            // 使用UTF8编码获取输入字符串的字节。
            byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue);

            // 将字节写到转换流里面去。
            cStream.Write(toEncrypt, 0, toEncrypt.Length);
            cStream.FlushFinalBlock();

            // 在调用转换流的FlushFinalBlock方法后,内部就会进行转换了,此时mStream就是加密后的流了。
            byte[] ret = mStream.ToArray();

            // Close the streams.
            cStream.Close();
            mStream.Close();

            //将加密后的字节进行64编码。
            return Convert.ToBase64String(ret);
        }

        /// <summary>
        /// 获取解密后的值
        /// </summary>
        /// <param name="inputValue">经过加密后的字符串.</param>
        /// <returns></returns>
        public string GetDecryptedValue(string inputValue)
        {
            TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();
            byte[] inputEquivalent = Convert.FromBase64String(inputValue);

            // 创建内存流保存解密后的数据
            MemoryStream msDecrypt = new MemoryStream();

            // 创建转换流。
            CryptoStream csDecrypt = new CryptoStream(msDecrypt,
            provider.CreateDecryptor(),
            CryptoStreamMode.Write);

            csDecrypt.Write(inputEquivalent, 0, inputEquivalent.Length);
            csDecrypt.FlushFinalBlock();

            csDecrypt.Close();

            //获取字符串。
            return new UTF8Encoding().GetString(msDecrypt.ToArray());
        }

 2.AES加密解密

//AES加密函数
public static string Encrypt(string toEncrypt) {
    byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");
    byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
 
    RijndaelManaged rDel = new RijndaelManaged();
    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);
}
 
//AES解密函数
public static string Decrypt(string toDecrypt) {
    byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");
    byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
 
    RijndaelManaged rDel = new RijndaelManaged();
    rDel.Key = keyArray;
    rDel.Mode = CipherMode.ECB;
    rDel.Padding = PaddingMode.PKCS7;
 
    ICryptoTransform cTransform = rDel.CreateDecryptor();
    byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
 
    return UTF8Encoding.UTF8.GetString(resultArray);
}

 3.DES加密解密

//加密密钥
        private static byte[] DESKey=new byte[]{11,23,93,102,72,41,18,12};
        //解密密钥
        private static byte[] DESIV=new byte[]{75,158,46,97,78,57,17,36};
 
        public  string Encode(string Encode_String)
        {
            DESCryptoServiceProvider objDES=new DESCryptoServiceProvider();
            MemoryStream objMemoryStream=new MemoryStream();
            CryptoStream objCryptoStream=new CryptoStream(objMemoryStream,objDES.CreateEncryptor(DESKey,DESIV),CryptoStreamMode.Write);
            StreamWriter objStreamWriter=new StreamWriter(objCryptoStream);
            objStreamWriter.Write(Encode_String);
            objStreamWriter.Flush();
            objCryptoStream.FlushFinalBlock();
            objMemoryStream.Flush();
            return Convert.ToBase64String(objMemoryStream.GetBuffer(),0,(int)objMemoryStream.Length);
 
        }
        public  string Decode(string Encode_String)
        {
            DESCryptoServiceProvider objDES=new DESCryptoServiceProvider();
            byte[] Input=Convert.FromBase64String(Encode_String);
            MemoryStream objMemoryStream=new MemoryStream(Input);
            CryptoStream objCryptoStream=new CryptoStream (objMemoryStream,objDES.CreateDecryptor(DESKey,DESIV),CryptoStreamMode.Read);
            StreamReader objStreamReader=new StreamReader(objCryptoStream);
            return objStreamReader.ReadToEnd();
        }

 

2
1
分享到:
评论

相关推荐

    AES加密解密帮助类

    这个压缩包中的"AES.cs"文件是一个C#实现的AES加密解密帮助类,方便在C#项目中直接集成使用。 AES加密过程主要分为以下几个步骤: 1. **预处理**:原始数据被拆分成128位的块,不足128位的数据需要填充到128位。...

    加密解密类

    加密解密帮助类

    C# RSA读取密钥文件pfx cer 签名验签加密解密帮助类

    在IT行业中,安全是至关重要的一个领域,尤其是在网络通信和数据传输中。C#作为.NET框架的主要编程语言,提供了丰富的库...在实际开发中,`CertificateRSAHelper`这样的辅助类可以帮助封装这些操作,使代码更简洁易用。

    AES帮助类 加密解密 String帮助类

    这个“AES帮助类”和“String帮助类”可能是为了简化AES加密解密操作而设计的Java库。 AES算法基于替换和置换的原理,通过固定的加密密钥对原始数据进行加密,只有持有相同解密密钥才能还原数据。其工作模式有ECB、...

    C# DES加密解密类DESEncrypt.cs

    C#的字符串加密码类,DES加密解密类 DESEncrypt 简单实用,直接导入。

    PHP 加密解密处理类

    在实际开发中,这样的加密解密处理类可以帮助保持代码的整洁,提高可维护性和安全性。开发者可以轻松地在项目中调用这些类,而无需每次都手动处理加密解密的细节。同时,应始终关注最新的安全标准和最佳实践,避免...

    php实现的加密解密处理类.zip

    总的来说,这个“php实现的加密解密处理类”是一个实用的工具,可以帮助PHP开发者更好地保护他们的应用程序和用户数据。通过深入理解并合理使用这个类库,可以提高代码的安全性和效率,同时降低开发复杂性。在实际...

    易飞用户加密解密

    本文将围绕“易飞用户加密解密”这一主题,深入探讨其原理、应用及操作流程,帮助读者更好地理解和运用这一技术。 一、加密与解密基础 1. 加密:加密是将明文信息转化为密文的过程,通过特定的加密算法,使得原始...

    3DES加密解密工具类

    3DES加密解密的全工具类,快速帮助新人进行3Des加密解密

    Qt实现AES加密解密

    在IT领域,加密技术是确保数据安全的重要手段之一。AES(Advanced Encryption Standard)是一种广泛应用的对称加密算法,因其...这个实战例程可以帮助开发者更好地掌握Qt环境下的加密解密操作,提高数据安全保护能力。

    Java实现的RSA加密解密算法示例

    Java实现的RSA加密解密算法示例 本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关...这些知识点对于Java开发者来说非常重要,可以帮助他们更好地理解和实现RSA加密解密算法。

    RSA加密解密工具,用于文件的加密和解密* RSA加密解密:私钥解密,公钥加密

    在本压缩包中,提供了RSA加密解密的工具——PRO_TDES_RSA.exe,这是一个执行程序,能够帮助用户对文件进行加密和解密操作。结合"RSATool工具简易操作指南 .doc",用户可以详细了解如何使用这个工具来保护他们的敏感...

    C#加密解密类及使用说明

    本篇文章将详细探讨C#中用于加密和解密字符串的类以及其使用方法,以帮助开发者在实际项目中实现对数据的安全保护。 一、加密与解密的重要性 在互联网应用中,保存用户密码时采用明文存储是非常危险的,一旦数据库...

    c# 常用加密,解密类

    例如,`ZYBEncrypt.csproj`和`ZYBEncrypt.sln`是项目文件,可能包含了整个加密解密库的构建和解决方案信息。开发者可以通过这些源代码学习和理解如何在C#中实际应用这些加密算法,或者直接在自己的项目中复用这些...

    加密解密小玩具v0.6.rar

    《加密解密小玩具v0.6》是一款实用的加密解密软件,它集成了多种经典且常用的加密算法,如RSA、AES、BASE64、BASE32、RC4等,同时还提供了MD5和SHA系列的哈希加密功能。这款工具能够帮助用户快速对数据进行加密和...

    各种方法加密解密类.zip

    压缩包内包含加密解密帮助类,包含功能:MD5 加密,加盐MD5加密,SHA 加密,SHA256 加密,SHA512 加密,HmacSha1 加密,HmacSha256 加密,HmacSha512 加密,HmacSha384 加密,HmacMd5 加密,HmacRipeMd160 加密,AES...

    功能强大的php加密解密类

    总结,"功能强大的php加密解密类"是一个专为PHP设计的工具,帮助开发者便捷地进行数据加密和解密。理解加密解密的基础知识,以及如何在PHP中安全地实现这一过程,是确保应用程序安全的关键。通过自定义类,我们可以...

    CTF编码工具brainfuck解密支持Base加密解密、字符加密解密、Key加密解密,能够帮助用户实现多种类型的CTF编码加密

    CTF编码工具支持Base加密解密、字符加密解密、Key加密解密,能够帮助用户实现多种类型的CTF编码加密解密操作,此外还提供了进制转换、字频分析、哈希计算、时间-时间戳、字符全大/小写、字符反转、Hex_str反转等功能...

    TEA加密解密.rar

    TEA加密解密是理解其工作原理和实施过程的关键。 TEA加密算法的核心是一个迭代的过程,它使用了64轮的加法、异或和位移操作。算法的基本步骤包括四步操作:Add、XOR、Shift和Add。每个轮次中,两个32位的半密钥(也...

    php中加密解密字符串函数类.zip

    在实际应用中,这个类库可以帮助开发者轻松地集成加密解密功能,例如在用户密码存储、传输敏感数据或者保护API调用的安全性等方面。使用自定义类库的一个好处是,可以统一整个项目的加密策略,避免因为使用不同加密...

Global site tag (gtag.js) - Google Analytics