博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# DES加密
阅读量:6405 次
发布时间:2019-06-23

本文共 2680 字,大约阅读时间需要 8 分钟。

 

需要引用名称空间

using System;using System.Text;using System.Security.Cryptography;using System.IO;

 

具体代码:

1     public class CryptoHelper 2     { 3         ///  4         /// 使用DES加密 5         ///  6         /// 明文 7         /// 加密钥匙 8         /// 向量 9         /// 
返回密文
10 public static string DesEncode(string plain, string key, string iv)11 {12 //把密钥转换成字节数组13 byte[] keyBytes = Encoding.ASCII.GetBytes(key);14 15 //把向量转换成字节数组16 byte[] ivBytes = Encoding.ASCII.GetBytes(iv);17 18 //声明1个新的DES对象 19 DESCryptoServiceProvider des = new DESCryptoServiceProvider();20 21 //开辟一块内存流22 MemoryStream msEncrypt = new MemoryStream();23 24 //把内存流对象包装成加密流对象 25 CryptoStream csEncrypt = new CryptoStream(msEncrypt, des.CreateEncryptor(keyBytes, ivBytes), CryptoStreamMode.Write);26 27 //把加密流对象包装成写入流对象28 StreamWriter swEncrypt = new StreamWriter(csEncrypt);29 30 //写入流对象写入明文 31 swEncrypt.WriteLine(plain);32 33 //写入流关闭 34 swEncrypt.Close();35 36 //加密流关闭 37 csEncrypt.Close();38 39 //把内存流转换成字节数组,内存流现在已经是密文了 40 byte[] bytesCipher=msEncrypt.ToArray();41 42 //内存流关闭 43 msEncrypt.Close();44 //将字节数组转化成Base64字符串45 return Convert.ToBase64String(bytesCipher);46 }47 48 public static string DesDeCode(string cipher, string key, string iv)49 {50 //将密文通过Base64位还原成字节数组51 byte[] cipherByte = Convert.FromBase64String(cipher);52 53 //把密钥转换成字节数组54 byte[] keyBytes = Encoding.ASCII.GetBytes(key);55 56 //把向量转换成字节数组57 byte[] ivBytes = Encoding.ASCII.GetBytes(iv);58 59 //声明1个新的DES对象 60 DESCryptoServiceProvider des = new DESCryptoServiceProvider();61 62 //开辟一块内存流,并存放密文字节数组63 MemoryStream msDecrypt = new MemoryStream(cipherByte);64 65 //把内存流对象包装成解密流对象 66 CryptoStream csDecrypt = new CryptoStream(msDecrypt, des.CreateDecryptor(keyBytes, ivBytes), CryptoStreamMode.Read);67 68 //把解密流对象包装成写入流对象69 StreamReader srDecrypt = new StreamReader(csDecrypt);70 71 //明文=读出流的读出内容 72 string strPlainText=srDecrypt.ReadLine();73 74 //读出流关闭 75 srDecrypt.Close();76 77 //解密流关闭 78 csDecrypt.Close();79 80 //内存流关闭 81 msDecrypt.Close();82 83 //返回明文 84 return strPlainText;85 }86 }

 

转载地址:http://ddxea.baihongyu.com/

你可能感兴趣的文章
oracle的基本语法
查看>>
路由选路原则
查看>>
jvm 学习(一)
查看>>
JavaScript简介
查看>>
SQL Server附加数据库拒绝访问解决方法汇总
查看>>
SM2算法原理及实现
查看>>
RHCA教材翻译计划
查看>>
js-小括号在不同场合下的作用
查看>>
我的友情链接
查看>>
kvm中虚拟机的硬盘扩容
查看>>
Android (Launch Mode) 四种启动模式
查看>>
透视学理论(二)
查看>>
Dubbo/HSF在Service Mesh下的思考和方案
查看>>
Django form表单
查看>>
CTYL-9.14(tomcat端口与阿里云安全组,域名与tomcat配置,域名与反向代理)
查看>>
Java 多线程相关问题记录
查看>>
LNMP架构介绍、MySQL安装、PHP安装、 Nginx介绍
查看>>
es6 class 笔记
查看>>
简单的Spark+Mysql整合开发
查看>>
阿里java面试经验大汇总(附阿里职位需求)
查看>>