对称加密的例子(DES)——直接加密和解密字符串
2010-03-22 19:50
218 查看
这是在课堂上讲解的一个例子,最简单的对称算法,DES
关于该算法的一些说明,有兴趣的朋友可以参考下面的链接
http://baike.baidu.com/view/7510.htm
staticvoidMain(string[]args)
{
DESdes=DES.Create();
des.Key=Convert.FromBase64String("12345678910=");
des.IV=Convert.FromBase64String("12345678910=");
//DES的算法密钥和向量必须是12位,而且最后一位必须的=
//而且必须用FromBase64String的方式获取
stringoriginal="Hello,world";
byte[]data=EncryptText(original,des.Key,des.IV);//加密
stringresult=DecryptText(data,des.Key,des.IV);//解密
Console.WriteLine(result);
Console.Read();
}
privatestaticstringDecryptText(byte[]data,byte[]key,byte[]iv)
{
MemoryStreamms=newMemoryStream(data);
DESdes=DES.Create();
CryptoStreamstream=newCryptoStream(ms,des.CreateDecryptor(key,iv),CryptoStreamMode.Read);
byte[]from=newbyte[data.Length];
stream.Read(from,0,from.Length);
returnEncoding.ASCII.GetString(from);
}
privatestaticbyte[]EncryptText(stringoriginal,byte[]key,byte[]iv)
{
MemoryStreamms=newMemoryStream();//用来接收密文的内存流
DESdes=DES.Create();
CryptoStreamstream=newCryptoStream(ms,des.CreateEncryptor(key,iv),CryptoStreamMode.Write);
//创建加密流
byte[]to=Encoding.ASCII.GetBytes(original);//获取输入的字符串的字节
stream.Write(to,0,to.Length);//写入加密流
stream.FlushFinalBlock();//写入内存流,并清空缓冲区
byte[]ret=ms.ToArray();
stream.Close();
ms.Close();
returnret;
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
相关文章推荐
- 对称加密的例子(DES)——直接加密和解密字符串
- 对称加密的例子(DES)——针对文件进行加解密
- 加密算法(对称加密)AES、DES (非对称加密)RSA、DSA
- 对称加密的例子(DES)——针对文件进行加解密
- 可直接用于React Native开发各种加密标准的JavaScript库(MD5,AES,DES,SHA...)
- 对称加密与非对称加密理解和非对称加密的java例子
- RC6加密C语言的例子,可以直接C编译器编译可以直接通过
- 对称加密(DES)与非对称加密(RSA)
- .NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES
- 对称加密中DES的加密与解密算法
- .NET中的加密解密:私钥加密(对称加密):DES
- c# DeS 加密解密字符串
- 可直接用于React Native开发各种加密标准的JavaScript库(MD5,AES,DES,SHA...)
- .NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES
- java实现对称加密AES和DES的加密、解密
- 对称加密和不对称加密
- Java DES 加密和解密源码
- 用例子来验证C#中执行到return语句是直接跳出方法
- Ubuntu下可以直接安装mingw(sudo apt-get install mingw32 mingw32-binutils mingw32-runtime,附例子,简单好用,亲测成功)good
- java常用工具类之DES和Base64加密解密类