using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Security.Cryptography;
namespace Ship.GlobalMethod
{
public class SymmetricMethod
{
private SymmetricAlgorithm mobjCryptoService;
private string Key;
/// <summary>
/// 对称加密类的构造函数
/// </summary>
public SymmetricMethod()
{
mobjCryptoService = new RijndaelManaged();
Key = "jcsmkjGuz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
}
/// <summary>
/// 获得密钥
/// </summary>
/// <returns>密钥</returns>
private byte[] GetLegalKey()
{
string sTemp = Key;
mobjCryptoService.GenerateKey();
byte[] bytTemp = mobjCryptoService.Key;
int KeyLength = bytTemp.Length;
if (sTemp.Length > KeyLength)
sTemp = sTemp.Substring(0, KeyLength);
else if (sTemp.Length < KeyLength)
sTemp = sTemp.PadRight(KeyLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}
/// <summary>
/// 获得初始向量IV
/// </summary>
/// <returns>初试向量IV</returns>
private byte[] GetLegalIV()
{
string sTemp = "jcsmkjE4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";
mobjCryptoService.GenerateIV();
byte[] bytTemp = mobjCryptoService.IV;
int IVLength = bytTemp.Length;
if (sTemp.Length > IVLength)
sTemp = sTemp.Substring(0, IVLength);
else if (sTemp.Length < IVLength)
sTemp = sTemp.PadRight(IVLength, ' ');
return ASCIIEncoding.ASCII.GetBytes(sTemp);
}
/// <summary>
/// 加密方法
/// </summary>
/// <param name="Source">待加密的串</param>
/// <returns>经过加密的串</returns>
public string Encrypto(string Source)
{
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
/// <summary>
/// 解密方法
/// </summary>
/// <param name="Source">待解密的串</param>
/// <returns>经过解密的串</returns>
public string Decrypto(string Source)
{
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
}
}
分享到:
相关推荐
NULL 博文链接:https://heisetoufa.iteye.com/blog/395558
本文实例讲述了C#实现简易的加密、解密字符串工具类。分享给大家供大家参考。具体如下: 这里的类CypherHelper是一个用于加密、解密字符串的工具类~~~,适合于方便地加密、解密长度较短的密码等字符串(C#里面已经有...
C#实现十六进制AES的加解密,附带字节数组工具类
C# 程序辅助工具类 // 程序信息// 程序启动器// (暂无)// 程序单开验证// 权限信息// 开机启动项// 数组格式化// 列表内容判断// 列表内容判断(ListTool)// 字节压缩// 人民币格式化// 中文时辰转换// 日期时间...
CSV文件转换;DataTable转实体;Excel操作类;FTP操作类;Html操作类;IP辅助类;JSON操作;JS操作;URL的操作类;XML操作类;处理多媒体的公共类;弹出消息类;二维码操作类;...加密解密;...配置文件操作类;...字符串
整理了字符串操作、加密解密、密码生成、字符过滤、文件上传、邮件发送、验证码等方法
先说明了,尽管我的工具类写得不怎么好...14、字符串加密与解密 15、根据身份证号(15或18位)获取出生日期 16、判断是否合法用户名,用户名在4-20位之间,必须也字母打头,不能含有中文或特殊字符 17、判断邮箱是否合法
12.Base64加密解密 MyBase64Helper.cs MD5加密等操作辅助类 MyMD5Helper.cs 13.鼠标辅助操作类,提供获取鼠标状态以及模拟鼠标点击等操作 MyMouseHelper.cs 14.中文转拼音的辅助类 MyPinYinHelper.cs 15.字符串类型...
40. 共用工具类 41. 其他 42. 分词辅助类 43. 分页 44. 加密解密 45. 压缩解压缩 46. 各种验证帮助类 47. 图片 48. 图片操作类 49. 图片验证码 50. 处理多媒体的公共类 51. 处理枚举类 52. 字符串 53. ...
2010年03月12日更新内容: 1、更新了分页类,增加URL重写的输出方法; 2、其它的更新内容请大家自己研究,记性有限。...[ 晨曦小竹·工具集]不用再去乱找方法了,无限分类,加密,字符串操作等此工具集里应有尽有
哈希加密帮助类,得到随机哈希加密字符串,随机哈希数字加密等 MySecurity MySecurity--Security安全加密/Security Base64/Security文件加密,以及一些常用的操作方法 RSACryption RSACryption--RSA加密/RSA...
,加密解密,压缩解压缩,各种验证帮助类,图片,图片操作类,图片验证码,处理多媒体的公共类,处理枚举类,字符串,对象转换处理,帮助文档,序列化,异步线程,弹出消息类 ,数据展示控件绑定数据类,文件操作类,日历,日志,时间戳...
全龄段友好的C#.NET万能工具库,不管你是菜鸟新手还是骨灰级玩家都能轻松上手,这个库包含一些常用的操作类,大都是静态类,加密解密,反射操作,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多...
新手友好的C#万能工具库,包含一些常用的操作类,大都是静态类,加密解密,反射操作,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期时间...
Public class RSADEncrypt RSA加密解密及RSA签名和验证 Public class SerializeHelper 序列化帮助类 Public class SessionHelper Session操作类 Public class SmtpConfig smtp配置类 Public class SmtpSetting ...
DEncrypt C# DEncrypt加密/解密帮助类 DESEncrypt Encrypt HashEncode MySecurity RSACryption 5.DLL COM.Excel.dll Excel.dll ICSharpCode.SharpZipLib.dll itextsharp.dll Microsoft.Office.Interop.Owc11.dll ...
3.DESEncrypt.cs 专门用户对字符串的加密和解密。 4.ErrorLog.cs 专门用户对系统的一些异常进行记录,默认写于Exception文件夹的ErrorLog.txt里。 5.FileDeal.cs 专门用于对文件的重命名、大小、格式等操作。 6.I...
在本书最后一章,专门设计了综合实例——“综合实例1: 照片面积计算机器”和“综合实例2: 文件加密与解密工具”,通过这两个综合实例,既可以将前20章的知识融会贯通,又可以抛砖引玉,真正教会读者开发C#应用...
在本书最后一章,专门设计了综合实例——“综合实例1: 照片面积计算机器”和“综合实例2: 文件加密与解密工具”,通过这两个综合实例,既可以将前20章的知识融会贯通,又可以抛砖引玉,真正教会读者开发C#应用...