初识3DES
来源:互联网 发布:东方网络股票 编辑:程序博客网 时间:2024/06/17 14:07
3DES是三重数据加密算法块密码的通称,它相当于是对每个数据块应用三次DES加密算法,3DES是通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。 它使用3条56位的密钥对数据进行三次加密。
设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文 这样:
3DES的加密过程为:
C=Ek3(Dk2(Ek1(M)))
3DES的解密过程为:
M=Dk1(Ek2(Dk3(C)))
附上一个示例DEMO
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Security.Cryptography;using System.IO;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { 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(); } }}
0 0
- 初识3DES
- DES & 3DES算法
- DES/3DES/AES
- DES/3DES/AES
- DES、3DES
- java 3des des
- DES、3DES
- DES、3DES、AES
- des与3des
- DES(ECB) DES(CBC) 3DES
- OpenSSL之DES api语法初识
- 3DES
- 3des
- 3DES
- 3DES
- 3DES
- 3DES
- DES/3DES Source Code
- 【Bootstrap】——popover效果弹出框
- sqlserver中将某数据库下的所有表字段名称为小写的改为大写
- 第一个多协程程序
- 新版本 - Berlin Update 1 – 现在购买可享九折优惠
- 从零开始学习音视频编程技术(五) 使用FFMPEG解码视频之保存成图片
- 初识3DES
- Ubuntu 12.04如何安装和使用Byobu
- 催经的方法【吐血整理】
- 怎么用OCR文字识别软件识别包含非常规符号的文本
- PHP框架Yii编码规范
- Xcode升级后插件失效的原理与修复办法
- DES加密算法原理 -附带C语言实现源代码
- 解决eclipse安装应用程序到genymotion报adb不能正常运行的问题
- 【java版】数据结构与算法分析学习之路【二】表【数组+链表】