C#DES加密解密编码格式小结
来源:互联网 发布:hashset源码 编辑:程序博客网 时间:2024/06/07 17:15
在网上也看了一点别人写的DES加密和解密算法:列举如下
public static string Encode(string str, string key) { DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8)); provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8)); byte[] bytes = Encoding.UTF8.GetBytes(str); MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write); stream2.Write(bytes, 0, bytes.Length); stream2.FlushFinalBlock(); StringBuilder builder = new StringBuilder(); foreach (byte num in stream.ToArray()) { builder.AppendFormat("{0:X2}", num); } stream.Close(); return builder.ToString(); }
解密:
public static string Decode(string str, string key) { DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8)); provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8)); byte[] buffer = new byte[str.Length / 2]; for (int i = 0; i < (str.Length / 2); i++) { int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10); buffer[i] = (byte)num2; } MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write); stream2.Write(buffer, 0, buffer.Length); stream2.FlushFinalBlock(); stream.Close(); return Encoding.GetEncoding("GB2312").GetString(stream.ToArray()); }
注意:上面方法中的key采用都是ASCII编码格式,如果我们用Base64生成key进行解码的时候就会提示Key长度不符合要求,这个情况下,我们就需要将key截取8位进行重新验证,问题解决,无编码错误......
- C#DES加密解密编码格式小结
- C#DES加密解密
- C#DES加密解密
- C#DES加密解密
- C#Des加密&解密
- 3DES加密解密小结
- C#DES加密和解密
- C#DES加密和解密
- DES加密解密C/C++
- 用C#实现Des加密和解密
- 用C#实现Des加密和解密
- C#实现Des加密和解密
- 用C#实现Des加密和解密
- 用C#实现Des加密和解密
- DES加密与解密(c语言版)
- Java和Objective-C中字符编码及DES加密解密
- DES/3DES加密,解密
- Base64、MD5、DES、AES、RAS加密解密编码解码分析
- commons-io之WildcardFileFilter的实现
- poj3125
- 文件过滤器FileFilter
- linux下类似百度文库开发研究与实战
- 华夏互联和逐浪CMS南昌研发中心新地址照片二张
- C#DES加密解密编码格式小结
- 数据结构(二) --- 基本数据类型
- -bash: mysql: command not found
- 学习设计模式----有关C#问题的理解
- MFC鼠标悬停提示
- 有关数据库增删改(通用方法)
- FileFilter和FilenameFilter类性能比较
- gravity与layout_gravity的使用场景
- 国内的云主机性能真不行啊