问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

3DES加密算法

发布网友 发布时间:2022-04-18 23:52

我来回答

1个回答

热心网友 时间:2022-04-19 01:21

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

class Class1
{
static void Main()
{
Console.WriteLine("Encrypt String...");
txtKey = "tkGGRmBErvc=";
btnKeyGen();
Console.WriteLine("Encrypt Key :{0}",txtKey);
txtIV = "Kl7ZgtM1dvQ=";
btnIVGen();
Console.WriteLine("Encrypt IV :{0}",txtIV);
Console.WriteLine();

string txtEncrypted = EncryptString("1111");
Console.WriteLine("Encrypt String : {0}",txtEncrypted);

string txtOriginal = DecryptString(txtEncrypted);
Console.WriteLine("Decrypt String : {0}",txtOriginal);
}

private static SymmetricAlgorithm mCSP;
private static string txtKey;
private static string txtIV;

private static void btnKeyGen()
{
mCSP = SetEnc();

byte[] byt2 = Convert.FromBase64String(txtKey);

mCSP.Key = byt2;
}

private static void btnIVGen()
{
byte[] byt2 = Convert.FromBase64String(txtIV);

mCSP.IV = byt2;
}

private static string EncryptString(string Value)
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;

ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);

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());
}

private static string DecryptString(string Value)
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;

ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

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());
}

private static SymmetricAlgorithm SetEnc()
{
return new DESCryptoServiceProvider();
}
}

3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,

3DES加密过程为:C=Ek3(Dk2(Ek1(P)))

3DES解密过程为:P=Dk1((EK2(Dk3(C)))

具体的加/解密过程如图2所示。K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
动感地带中的M值怎么用? 怎样查询动感地带的M值? ...去北京朝阳区姚家园路石佛营东里甲1#上东国际酒店怎么走 北京朝阳公园附近有一个上东国际酒店,在团结湖地铁站的哪一个出口出去... 北京上东国际大酒店是几星酒店 北京上东国际酒店酒店简介 显示器突然黑屏.换另一台显示器它却能显示得到.不知道是什么原因... 电脑选择扩展屏幕,外接屏幕黑屏,选择复制屏幕则正常,改... 我刚配的电脑会黑屏,把显示器跟别人换用后两台都没事 我一开始有2600多幸运币,我昨天上的时候只变成200了,是怎么回事那? 世界上有几种狐狸,六尾狐和九尾狐,是真的吗,见过吗 纹九尾狐狐狸有什么说法 干海参发泡过程中烂了 解冻后的海参软软烂烂的,是不是坏了? 每次喝完老火汤扣拉稀? excel 工资条的表头两行怎么制作?如图。谢谢! 怎么快速方便的打印工资条,表头有2行,要求每行工资明细前都有一个表头, 用EXCEL表格制作工资条,如何将每一行工资上面插入两行表头? 身体多轻柔,逍遥天游。风来它就躲雨来它带头。猜生肖? 身体多轻柔,逍遥漫天游。 风来它就躲,雨来它带头。 猜生肖 身体多轻柔,逍遥漫天游.风来它就躲,雨来它带头.打一生肖 八卦新闻猪脑在,风来雨来我在挡。猜一生肖 五湖四海一片空,牛马皆有兄弟缘,八卦九宫乾坤在,风来雨来谁在挡。猜十二生肖 070期:风来雨来我在挡……%¥猜一生肖?? 八卦新闻猪脑在,风来雨来我在挡是指什么生肖? 八卦新闻猪脑在,风来雨来我在挡,这句话的意思是指什么生肖? 八卦新闻猪脑在,风来雨来我在挡是指的什么生肖 风来雨来我在挡。指是什么生肖? 办理北京公司注册地址变更有哪些需要注意的事项 谁知道DES 、3DES加密的算法? 鼠标坏了怎么查看电脑ip 电脑怎么查看ip 智能人机交互系统是什么? 国窖一五七三五十二度水晶瓶装多少钱一瓶 人机交互的简介 泸州老窖1573多少钱一瓶 人机交互技术的发展历史 智能人机交互系统是利用自然语言实现+(+)与(+)的自然交流。其中的一个重要设+_百度问一问 手机录的音怎么屏蔽音乐只要对话 重新办移动sim卡需要本人吗 altium designer怎样画任意角度线, 按shift+空格也没用,只能在90度和45度之间切换,求高手帮忙啊!! 如何将altium designer画线设置为45度角 pcb中只能画45度和90度,如何画30度的线 用AD09画(2D线)线条 为什么不能走任意角度? Altium Designer 9自定义走线角度无法调整,不知什么原因只能通过空格键调90度和45度, dxp中,直接画pcb板时如何在板子上画些弧角 用altium designer做pcb时怎样确定圆心以及角度? 玩穿越火线一开枪屏幕就会抖动,这个要怎么解决 我的电脑玩穿越火线为什么画面抖动是什么回事? 穿越火线点射屏幕太抖该怎么调啊?