对称加密解密通用类库函数
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());
}
}
}
分享到:
相关推荐
[加密解密算法]对称加密解密通用类库函数
hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装 hutool-db JDBC封装后的数据操作,基于ActiveRecord思想 hutool-dfa 基于DFA模型的多关键字查找 hutool-extra 扩展模块,对第三方封装(模板引擎、邮件...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...
凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java加密解密工具集 JCT v1.0源码包.rar Java半透明图片实现的步骤及源代码.rar Java右键弹出菜单源码 Java吃豆子游戏源代码.rar Java图片加水印,支持旋转和透明度设置 Java圆形按钮实例代码,含注释 Java圆形电子...
非对称加密验证辅助类(RSASecurityHelper.cs) ----------File-------------- 用于获取或设置Web.config/*.exe.config中节点数据的辅助类(AppConfig.cs)CSV文件和DataTable对象转换辅助类(CSVHelper.cs)Database...
5. 非对称加密验证辅助类(RSASecurityHelper.cs) ----------File-------------- 1. 用于获取或设置Web.config/*.exe.config中节点数据的辅助类(AppConfig.cs) 2. CSV文件和DataTable对象转换辅助类(CSVHelper.cs...
5.非对称加密验证辅助类(RSASecurityHelper.cs) ----------File-------------- 1.用于获取或设置Web.config/*.exe.config中节点数据的辅助类(AppConfig.cs) 2.CSV文件和DataTable对象转换辅助类(CSVHelper.cs) 3...
Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...