继往开来 吐故纳新
日历
网志分类
· 所有网志 (1024)
· 个人作品 (64)
· 软件设计 (33)
· 面向对象编程 (22)
· JavaAPI (44)
· Java开源工具 (36)
· Swing (34)
· Java语法细节 (39)
· 样式表CSS (12)
· XML (9)
· J2EE(JavaEE) (23)
· 算法数据结构 (64)
· 正则表达式 (4)
· 软件知识 (6)
· Java线程 (9)
· Web开发.Jsp/Servlet/Struts (20)
· 程序随想录 (7)
· Hibernate (7)
· Spring (5)
· J2SE 高级 (2)
· J2SE 高级 (0)
· Web开发.Ajax (16)
· Web开发.JavaScript (48)
· DB4O (2)
· Web开发.CSS/Html (22)
· C# (20)
· ERP (4)
· JDBC (1)
· 编程资源 (16)
· 编程感悟 (29)
· DB/Sql (13)
· VB (29)
· VC (2)
· 桌面脚本 (3)
· 新兴软件 (3)
· 英语学习 (21)
· 网文转载 (163)
· 职场风云 (40)
· 诗词歌赋 (32)
· 生活感言 (79)
· 生活常识 (0)
· 奇文共赏 (15)
· 财经纵横 (9)
· 未分类 (17)
站内搜索
友情链接
· 歪酷博客
· 我的歪酷 非非共享界
· 偶要雷锋
· 豆瓣
· nczonline
· 当当网
· easyjf中文站
· Donews
· 天极Java文章列表
· W3CSchool
· taiten的BLOG
· Dojo中国
· Dojo
· Extjs.com
· Lifehack中文网志
· JaveEye的一个AS专题
· Banq's JDon
· Java 中文网址大全
· 梦想Java
· 360Doc个人图书馆
· java开源大全
· 我在硅谷动力的软件下载站
· 站长中国
· 随意贴
· CSS教学素材站
· java 参考中文站
· 面向构件与SOA社区
· 彩字生成
· 派派小说论坛
· 如坐春风
· 英语学习网
· BBC CHina
· www.dlbang.com
· 古文竖排格式在线转化工具
· 免费家谱
· 图片上传基地
· 风景壁纸
· 和风细雨
· MyC#BlogInCsdn

订阅 RSS

0251427

歪酷博客

开此博一为经验积累,二为资料收集,三为同道交流,四为资源共享.
« 上一篇: XML与C#完全版 下一篇: #region(C# 参考) »
Junglesong @ 2007-08-16 10:32

以下是关于对称加密算法的C#实现代码,大家可以根据需要更改不同的算法,文中以Rijndael算法为例:

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

namespace DataCrypto
{
 /// <summary>
 /// 对称加密算法类
 /// </summary>
 public class SymmetricMethod
 {
  
  private SymmetricAlgorithm mobjCryptoService;
  private string Key;
  /// <summary>
  /// 对称加密类的构造函数
  /// </summary>
  public SymmetricMethod()
  {
   mobjCryptoService = new RijndaelManaged();
   Key = "Guz(%&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 = "E4ghj*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();
  }
 }
}





评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定