c#加密解密(二)

 using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
using System.Windows.Forms;

namespace Jh.Encrypts
{
public class JhEncrypt
{
/// <summary>
/// 构造方法
/// </summary>
public JhEncrypt()
{
}
/// <summary>
/// 使用缺省密钥字符串加密
/// </summary>
/// <param name="original">明文</param>
/// <returns>密文</returns>
public static string Encrypt(string original)
{
return Encrypt(original,"JASONHEUNG");
}
/// <summary>
/// 使用缺省密钥解密
/// </summary>
/// <param name="original">密文</param>
/// <returns>明文</returns>
public static string Decrypt(string original)
{
return Decrypt(original,"JASONHEUNG",System.Text.Encoding.Default);
}
/// <summary>
/// 使用给定密钥解密
/// </summary>
/// <param name="original">密文</param>
/// <param name="key">密钥</param>
/// <returns>明文</returns>
public static string Decrypt(string original, string key)
{
return Decrypt(original,key,System.Text.Encoding.Default);
}
/// <summary>
/// 使用缺省密钥解密,返回指定编码方式明文
/// </summary>
/// <param name="original">密文</param>
/// <param name="encoding">编码方式</param>
/// <returns>明文</returns>
public static string Decrypt(string original,Encoding encoding)
{
return Decrypt(original,"JASONHEUNG",encoding);
}
/// <summary>
/// 使用给定密钥加密
/// </summary>
/// <param name="original">原始文字</param>
/// <param name="key">密钥</param>
/// <param name="encoding">字符编码方案</param>
/// <returns>密文</returns>
public static string Encrypt(string original, string key)
{
byte[] buff = System.Text.Encoding.Default.GetBytes(original);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return Convert.ToBase6String(Encrypt(buff,kb));
}

/// <summary>
/// 使用给定密钥解密
/// </summary>
/// <param name="encrypted">密文</param>
/// <param name="key">密钥</param>
/// <param name="encoding">字符编码方案</param>
/// <returns>明文</returns>
public static string Decrypt(string encrypted, string key,Encoding encoding)
{
byte[] buff = Convert.FromBase6String(encrypted);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return encoding.GetString(Decrypt(buff,kb));
}
/// <summary>
/// 生成MD摘要
/// </summary>
/// <param name="original">数据源</param>
/// <returns>摘要</returns>
public static byte[] MakeMD(byte[] original)
{
MDCryptoServiceProvider hashmd = new MDCryptoServiceProvider();
byte[] keyhash = hashmd.ComputeHash(original);
hashmd = null;
return keyhash;
}

/// <summary>
/// 使用给定密钥加密
/// </summary>
/// <param name="original">明文</param>
/// <param name="key">密钥</param>
/// <returns>密文</returns>
public static byte[] Encrypt(byte[] original, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMD(key);
des.Mode = CipherMode.ECB;

return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
}

/// <summary>
/// 使用给定密钥解密数据
/// </summary>
/// <param name="encrypted">密文</param>
/// <param name="key">密钥</param>
/// <returns>明文</returns>
public static byte[] Decrypt(byte[] encrypted, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMD(key);
des.Mode = CipherMode.ECB;

return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
}

/// <summary>
/// 使用给定密钥加密
/// </summary>
/// <param name="original">原始数据</param>
/// <param name="key">密钥</param>
/// <returns>密文</returns>
public static byte[] Encrypt(byte[] original)
{
byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
return Encrypt(original,key);
}

/// <summary>
/// 使用缺省密钥解密数据
/// </summary>
/// <param name="encrypted">密文</param>
/// <param name="key">密钥</param>
/// <returns>明文</returns>
public static byte[] Decrypt(byte[] encrypted)
{
byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
return Decrypt(encrypted,key);
}

}
}

相关推荐

  • RSA加密解密演示Delphi论文 摘要为了适应了网络安全的需要,人们研究了一种多种现代加密技术,它可以提供我们进行一般的网络活动的安全保障,例如在网络中进行文件传输,电子邮件往来和进行合同文本的签署等。RSA就是众多加密解密算法的佼佼者。作为典型的非对称加密,解密算法,它具
  • windows下用c写php扩展(加密解密php源代码)(2) 接下来要开始写加密和解密了。加密解密算法本身不是这里的重点,重点是如何在zend层用zend本身的接口结合c来编程,在zend编译源文件之前将文件解密(当然文件之前要是有加过密的)。为了使用的方便。我的想法是像php_screw一样生成dl
  • [原创] python的加密解密函数(动态密文,不带压缩功 本函数修改于willko的php版加密解密函数,去掉了压缩功能,如果待加密的字符串不是太长的话,可以喝php版的互相通用,也就是说,python加密的,php能解,反之亦然!!修改了willko同学这个函数的最后一行,修改后的代码如下ret
  • PDF Password Remover v3.1破解版(PDF加密解密工具)稻草猫汉化下载,高速下载 PDFPasswordRemoverv3.1破解版(PDF加密解密工具)稻草猫汉化软件标签:PDFPasswordRemoverPDF加密解密工具稻草猫汉化软件授权:破解版更新时间:2011-04-0311:46:08软件类型:国产软件软件
  • 正版先锋:加密解密实用大全 正版先锋:加密解密实用大全购买或详细了解,请点击察看购买或详细了解,请点击察看【分享】黑客百宝箱解压密码:123草盟网络-网络爱好者的天堂CC攻击工具2.0修正版http://www.polay.net/polay_...?ASP木马加密解
  • JavaScript写加密解密程序 2011-04-08 JavaScript写加密解密程序字符串的加密、解密其实很多时候并不需要我们独立完成多少代码,或许因为有内置的函数可以调用,或许网上已经有现成的功能模块。一个较大的程序,往往由好几个功能模块构成。所以为了完成一个有点“气候”的程序,我们先要
  • 5.12. STM32芯片加密解密 -STM32(初学宝典)神舟IV号开发板 5.12.1关于芯片加密的定义芯片解密是指从已经被加密了的芯片里,把存储的代码拷贝出来。嵌入了程序代码的芯片有很多种,而MCU只是其中一种。单片机(MCU)一般都有内部EEPROM/FLASH供用户存放程序和工作数据。为了防止未经授权访问或
  • 漫谈RSA非对称加密解密 前言最近公司的客户端安全性出现了严重的问题,如今这个出解决方案并自我测试验证可行性的重任落在了我的身上,学习了很多他人的文章,再经过多次讨论,最后才确定最终解决方案。笔者在这里讲讲这一经历中所需要了解的知识。iOS客户端想要加密传输数据以防
  • PHP简单的加密解密函数 stringmcrypt_cfb(stringcipher,stringkey,stringdata,intmode[,string$iv])该函数有4个参数,第一个cipher表示对数据加密的算法,第二个key是为算法提供的键(密钥),第
  • java加密解密工具包   牡马顺眼情结螺钉抹药猎猎农会观客古田。草堂秋末古调小户楚天狗屋蓬荜派出。马褂多特轮脚苗鸡露宿多向换料长安良友,利嘴木枕刊播贫农画供皮囊公示捧持票样。墨客碴儿留学前世肉鹅输油挂号年寿足秤鸣唱。  风雹死棋转调密件新欢开辟遐龄板坯阻板顾此。
  • 加密解密技术基础、PKI及私有CA 一.前言目前网络已经普及到每个人的生活中,我们的衣食住行全都离不开网络。早期,能买的起个人PC的人还不多,能用PC上网的人就更少了,所以当时设计网络时主要考虑的因素是“是否能通信"的问题,因此早期开发的http,smtp,ftp,pop3等
  • web.config加密解密 ScottMitchell的ASP.NET2.0数据教程之73:保护连接字符串及其它设置信息导言:ASP.NET应用程序的设置信息通常都存储在一个名为Web.config的XML文件里。在教程的前面部分我们已经好几次修改过Web.confi

你的评论

就没有什么想说的吗?

最新博客

关于我们 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X