对称加密的例子(DES)——直接加密和解密字符串
2010-03-22 11:50
246 查看
这是在课堂上讲解的一个例子,最简单的对称算法,DES
关于该算法的一些说明,有兴趣的朋友可以参考下面的链接
http://baike.baidu.com/view/7510.htm
static void Main(string[] args) { DES des = DES.Create(); des.Key = Convert.FromBase64String("12345678910="); des.IV = Convert.FromBase64String("12345678910="); //DES的算法密钥和向量必须是12位,而且最后一位必须的= //而且必须用FromBase64String的方式获取 string original = "Hello,world"; byte[] data = EncryptText(original, des.Key, des.IV);//加密 string result = DecryptText(data, des.Key, des.IV);//解密 Console.WriteLine(result); Console.Read(); } private static string DecryptText(byte[] data, byte[] key, byte[] iv) { MemoryStream ms = new MemoryStream(data); DES des = DES.Create(); CryptoStream stream = new CryptoStream(ms, des.CreateDecryptor(key, iv), CryptoStreamMode.Read); byte[] from = new byte[data.Length]; stream.Read(from, 0, from.Length); return Encoding.ASCII.GetString(from); } private static byte[] EncryptText(string original, byte[] key, byte[] iv) { MemoryStream ms = new MemoryStream();//用来接收密文的内存流 DES des = DES.Create(); CryptoStream stream = new CryptoStream(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(); return ret; }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { 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)——针对文件进行加解密
- .NET中的加密解密:私钥加密(对称加密):DES
- 对称加密的例子(DES)——针对文件进行加解密
- 对称加密(DES)与非对称加密(RSA)
- .NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES
- 可直接用于React Native开发各种加密标准的JavaScript库(MD5,AES,DES,SHA...)
- 对称加密中DES的加密与解密算法
- 对称加密与非对称加密理解和非对称加密的java例子
- 可直接用于React Native开发各种加密标准的JavaScript库(MD5,AES,DES,SHA...)
- .NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES
- RC6加密C语言的例子,可以直接C编译器编译可以直接通过
- java实现对称加密AES和DES的加密、解密
- c# DeS 加密解密字符串
- 加密算法(对称加密)AES、DES (非对称加密)RSA、DSA
- 对称加密DES和TripleDES
- Java加密技术篇(二)对称加密算法(DES&AES)
- PHP DES 对称-加密解密
- C# winfrom中创建,读,写、加密ini文件【DES】
- C#中使用DES和AES加密解密