3DES 加密解密

/// <summary>
/// 3DES 加密解密
/// </summary>
class Encrypt
{
public static string EncryptString(string Value, string txtKey, string txtIV)
{
SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();

mCSP.Key = Encoding.UTF8.GetBytes(txtKey);
mCSP.IV = Encoding.UTF8.GetBytes(txtIV);

ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
//mCSP.Mode = CipherMode.CBC;
//mCSP.Padding = PaddingMode.PKCS7;
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());
}

public static string DecryptString(string Value, string txtKey, string txtIV)
{
SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
mCSP.Key = Encoding.UTF8.GetBytes(txtKey);
mCSP.IV = Encoding.UTF8.GetBytes(txtIV);

ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
//mCSP.Mode = CipherMode.CBC;
//mCSP.Padding = PaddingMode.PKCS7;
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());
}
}

时间: 2024-11-05 14:43:16

3DES 加密解密的相关文章

C# Java 3DES加密解密 扩展及修正\0 问题

注: C#已亲测及做扩展, Java 部分未做验证 /// <summary> /// 3DES加密解密 /// ----------------------------------------------------------- /// 说明: /// 转载自网上http://bbs.csdn.net/topics/350158619 /// 并加以扩展 /// 修正: /// 1. 修改正解密后出现 '\0' /// 注: 1. 向量不能小于8位 /// 2. 明文末尾如果是带'\0'字

iOS 3DES加密解密(一行代码搞定)

3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解:3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法. 3DES又称Triple DES,是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密.数据加密标

简进祥==iOS 3DES加密解密

3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解:3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法. 3DES又称Triple DES,是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密.数据加密标

3DES 加密 解密

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #c91b13 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1d9421 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo } p.p4 { margin: 0.0px 0.0px 0.0px 0.

C# 3DES加密解密,差点要了命

最近 一个项目.net 数据采用3DES加密.下面分享一下,这里的KEY采用Base64编码,便用分发,c#的Byte范围是0-255核心是确定Mode和Padding,关于这两个的意思可以搜索3DES算法相关文章一个是C#采用CBC Mode,PKCS7 Padding另一个是C#采用ECB Mode,PKCS7 Padding对字符加密时,采用的是UTF-8编码 下面是C#代码 /// <summary> /// DES3加密解密 /// </summary> public c

JAVA和C# 3DES加密解密

原文转自:http://blog.csdn.net/sdfkfkd/article/details/6004847 最近 一个项目.net 要调用Java的WEB SERVICE,数据采用3DES加密,涉及到两种语言3DES一致性的问题,下面分享一下,这里的KEY采用Base64编码,便用分发,因为Java的Byte范围为-128至127,c#的Byte范围是0-255核心是确定Mode和Padding,关于这两个的意思可以搜索3DES算法相关文章一个是C#采用CBC Mode,PKCS7 Pa

PBOC圈存时用到3DES加密解密以及MAC计算方法

最近在做PBOC圈存时用到了3DES的加密解密以及MAC计算问题,在网上了解一些知识,复制了一些demo学习,我这里没有深入研究,只是把我用到的和了解的做个总结,便于以后使用和学习. 3DES分双倍长和三倍长,我使用到的是双倍长,加密模式为ECB,代码如下 public static class EncryptUtils { //构造一个对称算法 private static SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider

C# 3DES加密 解密

/// <summary> ///3DES加密 /// </summary> /// <param name="originalValue">加密数据</param> /// <param name="key">24位字符的密钥字符串</param> /// <param name="IV">8位字符的初始化向量字符串</param> /// <

.NET与 java通用的3DES加密解密方法

C#代码 private void button1_Click(object sender, EventArgs e) { string jiami = textBox1.Text; textBox2.Text= DESEnCode(jiami, "11111111"); } public static string DES_Key = "11111111"; #region DESEnCode DES加密 public static string DESEnCod