Des加密解密(公共方法)
2024-09-05 11:29:04
1 public class Des
2 {
3 public static string Encrypt(string message, string key)
4 {
5 DES des = new DESCryptoServiceProvider();
6 des.Key = Encoding.UTF8.GetBytes(key);
7 des.IV = Encoding.UTF8.GetBytes(key);
8 //des.Mode = CipherMode.ECB;
9
10 byte[] inputByteArray = Encoding.UTF8.GetBytes(message);
11
12 System.IO.MemoryStream ms = new System.IO.MemoryStream();
13 CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
14 cs.Write(inputByteArray, 0, inputByteArray.Length);
15 cs.FlushFinalBlock();
16 ms.Close();
17 StringBuilder ret = new StringBuilder();
18 foreach (byte b in ms.ToArray())
19 {
20 ret.AppendFormat("{0:X2}", b);
21 }
22 return ret.ToString();
23
24 }
25
26 //DES解密
27 public static string Decrypt(string content, string key)
28 {
29 try
30 {
31 DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
32 // 密钥
33 provider.Key = Encoding.UTF8.GetBytes(key);
34 // 偏移量
35 provider.IV = Encoding.UTF8.GetBytes(key);
36 byte[] buffer = new byte[content.Length / 2];
37 for (int i = 0; i < (content.Length / 2); i++)
38 {
39 int num2 = Convert.ToInt32(content.Substring(i * 2, 2), 0x10);
40 buffer[i] = (byte)num2;
41 }
42 using(MemoryStream stream = new MemoryStream())
43 {
44 CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
45 stream2.Write(buffer, 0, buffer.Length);
46 stream2.FlushFinalBlock();
47 stream.Close();
48 return Encoding.UTF8.GetString(stream.ToArray());
49 }
50 }
51 catch (Exception) { return ""; }
52 }
53 }
最新文章
- sql 取新的列名含义
- Eclipse下无法自动编译,或者WEB-INF/classes目录下没文件,编译失败的解决办法(转载)
- Elasticsearch之client源码简要分析
- rtpMIDI Tutorial
- ES6新特性:Function函数扩展, 扩展到看不懂
- mysql 变量
- Java 集合系列 01 总体框架
- HDU 2836 Traversal 简单DP + 树状数组
- 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法
- DataReader反射泛型对象
- CDC不同模式在ODI体现系列之二 异步模式
- CLLocation
- javascript中apply和eval结合的强大用法
- Beginning Python From Novice to Professional (7) - 类别
- oracle-使用数据泵对不同用户和不同表空间的数据迁移
- HFun.快速开发平台(二)=》自定义列表实例
- 谁记录了mysql error log中的超长信息
- 两个inline-block元素上下不对齐,出现错位
- 导航+左侧菜单+tab切换模板
- Nginx(一)安装及启停
热门文章
- 使用Eclipse的基本配置
- HDFS基本命令
- python matplotlib.pyplot 散点图详解(1)
- STM32,下载HAL库写的代码后J-Link识别不到芯片,必须要按住复位才能下载?
- IDEA 集成 Docker 插件实现一键远程部署 SpringBoot 应用,无需三方依赖,开源微服务全栈项目有来商城云环境的部署方式
- Android View post 方法
- 【PHP数据结构】图的概念和存储结构
- PHP中操作数据库的预处理语句
- Git报错-refusing to merge unrelated histories
- SAP Shared Object 01 (共享对象)