`
zendj
  • 浏览: 121197 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

对称加密解密通用类库函数

阅读更多

对称加密解密通用类库函数

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

namespace Common
{
/// <summary>
/// 加密解密通用类库函数
///Copyright (C), 2004, kwklover(邝伟科)
///File name:Crypto.cs
///Author:邝伟科 Version:1.0 Date:2004年4月21日
///Description:可逆的通用对称加密解密函数集
/// </summary>
public class Crypto
{
private string _CryptText; //待加密和解密的字符序列变量
private byte[] _CryptKey; //加密解密私钥变量
private byte[] _CryptIV; //加密解密初始化向量IV变量

/// <summary>
/// 待加密或解密的字符序列
/// </summary>
public string CryptText
{
set
{
_CryptText=value;
}
get
{
return _CryptText;
}
}

/// <summary>
/// 加密私钥
/// </summary>
public byte[] CryptKey
{
set
{
_CryptKey=value;
}
get
{
return _CryptKey;
}
}

/// <summary>
/// 加密的初始化向量IV
/// </summary>
public byte[] CryptIV
{
set
{
_CryptIV=value;
}
get
{
return _CryptIV;
}
}

public Crypto()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

/// <summary>
/// 加密函数,用于对字符串进行加密。需要提供相应的密钥和IV。
/// </summary>
/// <returns></returns>
public string Encrypt()
{
string strEnText=CryptText;
byte[] EnKey=CryptKey;
byte[] EnIV=CryptIV;

byte[] inputByteArray=System.Text.Encoding.UTF8.GetBytes(strEnText);

//此处也可以创建其他的解密类实例,但注意不同(长度)的加密类要求不同的密钥Key和初始化向量IV
RijndaelManaged RMCrypto = new RijndaelManaged();

MemoryStream ms=new MemoryStream();
CryptoStream cs=new CryptoStream(ms,RMCrypto.CreateEncryptor(EnKey,EnIV),CryptoStreamMode.Write);
cs.Write(inputByteArray,0,inputByteArray.Length);
cs.FlushFinalBlock();

return Convert.ToBase64String(ms.ToArray());
}

/// <summary>
/// 解密函数,用于经过加密的字符序列进行加密。需要提供相应的密钥和IV。
/// </summary>
/// <returns></returns>
public string Decrypt()
{
string strDeText=CryptText;
byte[] DeKey=CryptKey;
byte[] DeIV=CryptIV;

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

//此处也可以创建其他的解密类实例,但注意不同的加密类要求不同(长度)的密钥Key和初始化向量IV
RijndaelManaged RMCrypto = new RijndaelManaged();

MemoryStream ms=new MemoryStream();
CryptoStream cs=new CryptoStream(ms,RMCrypto.CreateDecryptor(DeKey,DeIV),CryptoStreamMode.Write);
cs.Write(inputByteArray,0,inputByteArray.Length);
cs.FlushFinalBlock();

return System.Text.Encoding.UTF8.GetString(ms.ToArray());
}
}
}


分享到:
评论

相关推荐

    QT C++ AES字符串加密解密类库,引入即可使用

    QT C++ AES字符串加密解密类库是一种在C++编程环境中使用QT框架实现的高级加密标准(AES)加密和解密工具。QT是一个流行的开源跨平台应用开发框架,广泛应用于桌面、移动和嵌入式系统。AES是目前广泛应用的对称加密...

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

    这个压缩包中的“php中加密解密字符串函数类”很可能是这样一个自定义类,它封装了常见的加密解密算法,可能包括AES(高级加密标准)、DES(数据加密标准)或RSA(非对称加密)等。 此类库可能会包含以下几个核心...

    RSA加密解密类库及代码示例

    这个压缩包"RSA加密解密类库及代码示例"中可能包含了以下内容: 1. RSA加密库:这可能是一个预编译好的库,例如开源的OpenSSL或Bouncy Castle,这些库提供了RSA加密的API,开发者可以直接调用进行加密和解密操作。 ...

    基于C#的文件加密解密类库(附源码)

    本文将深入探讨一个基于C#的文件加密解密类库,该库专为Windows系统设计,旨在为文件提供安全的加密和解密服务。源码的提供不仅方便了开发者直接使用,也为学习和理解加密算法提供了宝贵的资源。 C#是一种面向对象...

    C#各种加密方式的 加密、解密 小工具,可以直接运行的源码 含类库文件

    项目中提到的“公用类”可能包含了通用的加密和解密功能,如密钥管理、加密解密的抽象接口或辅助函数,便于在不同场景下复用。 对于初学者或开发者来说,这个项目是一个很好的学习资源,可以帮助理解和实践C#中的...

    [加密解密算法]

    对称加密解密类库常用于文件加密存储、通信协议的加密传输、数据库密码保护等领域。在开发中,通过调用此类库函数,可以轻松实现数据的安全加解密。 6. 注意事项: 虽然对称加密效率高,但在密钥管理上存在挑战。...

    一个基于C#+ASP.NET实现的数据安全加密与解密的类库及例子源码程序

    "DataEncription"很可能是项目的主要源代码文件夹,其中包含加密和解密类库的实现。在这个文件夹里,可能会有以下几个部分: 1. `Encryption.cs`:这是一个可能的加密类,实现了加密算法,如AES或RSA,包含加密和...

    phpaes加密解密类库

    `phpaes`是一个专门针对AES(Advanced Encryption Standard,高级加密标准)的加密解密类库,它为PHP开发者提供了一个简单易用的接口来执行AES算法。AES是一种广泛采用的对称加密算法,以其高效和安全性著称,常用于...

    MFC实现AES非对称加密解密算法

    在IT领域,加密技术是...总之,利用MFC实现AES非对称加密解密算法涉及到了对AES和非对称加密的理解,以及如何在Windows环境中集成这些加密技术。通过研究提供的源代码,你可以掌握如何在实际项目中实施这一安全策略。

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

    使用这个类库,开发者可以更加专注于业务逻辑,而不必过于担心加密解密的技术细节。 总的来说,这个“php实现的加密解密处理类”是一个实用的工具,可以帮助PHP开发者更好地保护他们的应用程序和用户数据。通过深入...

    php+uni-app AES加密解密.rar

    AES(Advanced Encryption Standard)是一种广泛应用的对称加密算法,提供了强大的数据保护能力。下面我们将深入探讨PHP和uni-app如何实现AES加密解密。 1. PHP的AES加密解密: PHP提供了多种库来实现AES加密,...

    uniapp 前后端AES加密解密.rar

    本压缩包"uniapp 前后端AES加密解密.rar"正是为了解决这一问题,它包含了在uniapp环境下实现前后端AES加密解密的方法。AES(Advanced Encryption Standard),即高级加密标准,是一种广泛使用的对称加密算法,具有...

    超级加密解密 V1.3 - .Net源码 - C#

    1. 类库支持:.NET框架提供了丰富的类库,如System.Security.Cryptography,包含各种加密解密算法的实现,使得开发者能够方便地调用内置的加密服务。 2. 泛型与面向对象编程:C#的泛型特性允许创建类型安全的代码,...

    C#文件加密解密(完整项目)

    这些算法包括对称加密(如AES、DES、TripleDES)、非对称加密(RSA、DSA)、哈希函数(MD5、SHA-1、SHA-256等)以及随机数生成器。其中,对称加密速度快,适合大量数据的加密;非对称加密安全性高,但速度较慢,常...

    C#加密算法类库

    - **编码转换**:在加密解密过程中,可能需要处理ASCII、UTF-8等不同字符编码。 - **加盐和迭代**:在密码存储时,通常会使用加盐和迭代技术增强密码的安全性。 - **数字签名和验签**:类库可能支持RSA等公钥算法的...

    C#加密解密程序

    在C#中,我们可以使用内置的System.Security.Cryptography命名空间,它包含了多种加密算法,如对称加密(Symmetric Cryptography)、非对称加密(Asymmetric Cryptography)和哈希函数(Hash Functions)。对称加密...

    cryptjs:一个加密解密,支持密钥的php类库

    "cryptjs" 是一个专为PHP设计的加密解密类库,它提供了对数据进行安全加密和解密的能力,并且强调了支持密钥的功能。这意味着该库可能采用了对称加密算法,如AES(高级加密标准)或者DES(数据加密标准),其中密钥...

    全能文件加密解密源码.zip

    【压缩包子文件的文件名称列表】中的"加密解密"可能是源代码文件夹或主程序文件的名字,里面可能包含了实现加密和解密操作的类、函数以及示例代码。 总的来说,这个压缩包提供了一个实用的C#文件加密解密工具的源...

    MFC 加密解密字符串

    总之,MFC中的字符串加密和解密涉及到多种技术,包括但不限于对称加密(如AES)、非对称加密(如RSA)、哈希函数等。开发者应根据具体需求选择合适的加密算法,并合理管理密钥,确保数据的安全性。通过熟练掌握这些...

Global site tag (gtag.js) - Google Analytics