一个可逆的DES和TripleDES方式加密类(downmoon原创)
using
System;
using
System.Security;
using
System.Security.Cryptography;
using
System.IO;
using
System.Text;
namespace
EncryptDownmoon
...
{
/**/
///
<summary>
///
EncryptSqlConn的摘要说明。
///
</summary>
public
class
EncryptSqlConn
...
{
public
EncryptSqlConn()
...
{
if
(mCSP
==
null
)
...
{
mCSP
=
SetEnc();
}
}
/**/
///
<summary>
///
设置加密方式,0为DES,1为TripleDES
///
</summary>
///
<returns></returns>
public
EncryptSqlConn(
int
EnMethod)
...
{
if
(EnMethod
==
0
)
...
{
lngEnMethod
=
0
;
}
else
...
{
lngEnMethod
=
1
;
}
if
(mCSP
==
null
)
...
{
mCSP
=
SetEnc();
}
}
方法
#region
方法
private
SymmetricAlgorithmmCSP;
private
int
m_lngEnMethod
=
0
;
/**/
///
<summary>
///
加密方式,0为DES,1为TripleDES
///
</summary>
public
int
lngEnMethod
...
{
get
...
{
return
m_lngEnMethod;
}
set
...
{
m_lngEnMethod
=
value;
}
}
private
SymmetricAlgorithmSetEnc()
...
{
if
(lngEnMethod
==
0
)
...
{
return
new
DESCryptoServiceProvider();
}
else
return
new
TripleDESCryptoServiceProvider();
}
//
测试键值
private
string
genKeyValue
...
{
get
...
{
mCSP.GenerateKey();
return
Convert.ToBase64String(mCSP.Key);
}
}
//
测试IV值
private
string
genIVValue
...
{
get
...
{
mCSP.GenerateIV();
return
Convert.ToBase64String(mCSP.IV);
}
}
/**/
///
<summary>
///
加密字串
///
</summary>
///
<paramname="Value"></param>
///
<returns></returns>
public
string
EncryptString(
string
Value)
...
{
ICryptoTransformct;
MemoryStreamms;
CryptoStreamcs;
byte
[]byt;
ct
=
mCSP.CreateEncryptor(mCSP.Key,mCSP.IV);
//
ct=mCSP.CreateEncryptor(genKeyValue,genIVValue);
byt
=
Encoding.UTF8.GetBytes(Value);
ms
=
new
MemoryStream();
cs
=
new
CryptoStream(ms,ct,CryptoStreamMode.Write);
cs.Write(byt,
0
,byt.Length);
cs.FlushFinalBlock();
cs.Close();
return
Convert.ToBase64String(ms.ToArray());
}
/**/
///
<summary>
///
解密字串
///
</summary>
///
<paramname="Value"></param>
///
<returns></returns>
public
string
DecryptString(
string
Value)
...
{
ICryptoTransformct;
MemoryStreamms;
CryptoStreamcs;
byte
[]byt;
ct
=
mCSP.CreateDecryptor(mCSP.Key,mCSP.IV);
//
ct=mCSP.CreateDecryptor(genKeyValue,genIVValue);
byt
=
Convert.FromBase64String(Value);
ms
=
new
MemoryStream();
cs
=
new
CryptoStream(ms,ct,CryptoStreamMode.Write);
cs.Write(byt,
0
,byt.Length);
cs.FlushFinalBlock();
cs.Close();
return
Encoding.UTF8.GetString(ms.ToArray());
}
#endregion
}
}
分享到:
相关推荐
对称加密DES和TripleDES ,加密技术
TripleDES加密解密算法的实现(JAVA)
C#常用加密类包含DES、MD5、RC2、Rijndael、RSA、TripleDES
3DES(即Triple DES)是DES向AES过渡的加密算法,它使用3条64位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。
一个用Java实现的三重des加密与解密过程的程序
本程序是本人综合一些加密解密算法,写成的加密解密算法类 其中包括对字符串加密解密、文件加密解密 加密方法有:DES,RC2,Rijndael,TripleDES,C#与java默认的DES加密算 法接口,MD5加密算法 vs2008 C# 源码
本程序是本人综合一些加密解密算法,写成的加密解密算法类 其中包括对字符串加密解密、文件加密解密 加密方法有:DES,RC2,Rijndael,TripleDES,C#与java默认的DES加密算 法接口,MD5加密算法 vs2008 C# 源码
前端DES加密代码,与后端约定密钥可解密。使用了谷歌的tripledes.js插件实现
PBE算法是对称加密算法的综合算法,常见算法PBEWithMD5AndDES,使用MD5和DES算法构建了PBE算法。将盐附加在口令上,通过消息摘要算法经过迭代获得构建密钥的基本材料,构建密钥后使用对称加密算法进行加密解密。 ...
是一个纯JAVA应用,不基于任何javax.* 类.理论上可以应用于任何平台的Java系统. 经过测试,其计算结果与J2SE的javax.crypto.Cipher类计算结果完成相同. 使用举例: DES des = new DES(); des.encrypt(key1,data,1) //...
使用目的:比较安全的加密一种方式,密钥和矢量的不同,会生产不同的加密字串。因为是DES算法的三次连续迭代,而且算法可逆,这样对于数据保密性和可恢复性都不错。 二、代码示例 本代码参照了部分MSDN上的代码示例...
Java开发的用于简单文字和文件的3DES加密算法,有图形界面,可以自行指定密钥
网上的类,很感兴趣,写了这个DES文件加密程序,已测试通过。 补充 button3_Click改为下述代码: private void button3_Click(object sender, EventArgs e) { sFileIn = this.textBox1.Text; sFileOut = this....
小程序des加密,后台java解密配套使用的,需要的同学可以看一下,为了抽满50个字,也是需要凑字数的,大家伙请见谅,
DES安全编码组件 支持 DES、DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、 RC4(ARCFOUR)
关于DES的弱密钥,其中含有对DES弱密钥的解释!对DES的密钥的选择有一定帮助~
DES加密,js网页代码。转化过程通过String转hex
C++ DES3加密源代码
对称算法在加密和解密数据时使用相同的密钥和初始化矢量,典型的有DES、 TripleDES和Rijndael算法,它适用于不需要传递密钥的情况,主要用于本地文档或数据的加密。不对称算法有两个不同的密钥,分别是公共密钥和...