当前位置: 传客网 > c#加密解密(二)

c#加密解密(二)

2016-12-11 作者:raymond0901

 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

  • VB Base64加密解密

    OptionExplicitPrivateConstcstBase64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"PrivatearrBase64()

  • 亚马逊EBS加密解读

    目前,亚马逊EBS的加密功能是由AWS提供。专家DaveShackleford解释了它的工作方式、企业为之努力的原因,以及它是否使行业更进一步的默认云数据加密。2014年5月,亚马逊网络服务(AWS)发布了一款新的加密产品,该款产品可让用户

  • DotNET dll混淆加密解决方案

    dotNetProtector橄榄山使用的加密组件网址:http://dotnetprotector.pvlog.com/中国代理:https://www.evget.com/supplier/409简单使用:如果是Revit插件,选择DL

  • 加密锁破解原理和方法,高手如何破解软件加密锁

     目前加密锁(加密狗)的解密破解工作主要集中在应用程序与加密动态库之间的通讯拦截。这种加密锁破解方法成本较低,也易于实现,对待以单片机等芯片为核心的加密锁(加密狗)具有不错的解密破解效果。  由于软件加密锁(加密狗)的应用程序接口(API)

  • 加密和解密基础,PKI及创建私有CA

    加密和解密可以分为两类传统加密算法:有替代加密算法,置换加密算法等现代加密算法:现代块加密算法密钥算法和协议常见的有四类分为:对称加密,公钥加密,单向加密,认证加密。对称加密:加密和解密使用同一个密钥常见的对称加密算法:DES:数据加密标准

  • IOS开发3DES加解密

    3Des加解密对明文加密和密文解密@paramplainString需要加解密的数据@paramencryptOrDecrypt加解密模式kCCEncrypt-加密kCCDecrypt-解密@parambase64KeyString进行ba

  • 怎样破解加密狗?

    算法(algorithm这样一种技术,算法单元较难理解一些。用QueriqueriData函数访问它其中queriData查询值,上述函数有一个返回值,被加密的顺序知道一组这样的查询值/返回值对,需要加密的地方,用上述函数检查狗的存在和真伪

  • ASP.NET应用程序数据库连接字符串加密与解密

    web.config中数据库连接字符串如下:后来自行百度,终于发现该配置中的元素是可以加密的,且引用时不用特殊处理,.net自行解密,真是又恨又爱!该加密算法有用到加密机器的键,只能在同一台机器上进行加密和解密,一般为部署到服务器后进行加密

返回
顶部