C# DES
- using System;
- //这个是使用DES的基础
- using System.Security.Cryptography;
- //这个是处理文字编码的前提
- using System.Text;
- //以“流”的形式处理文字,也是微软DES算法要求的
- using System.IO;
- /// <summary>
- /// DES加密方法
- /// </summary>
- /// <param name="strPlain">明文</param>
- /// <param name="strDESKey">密钥</param>
- /// <param name="strDESIV">向量</param>
- /// <returns>密文</returns>
- public string DESEncrypt(string strPlain,string strDESKey,string strDESIV)
- {
- //把密钥转换成字节数组
- byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);
- //把向量转换成字节数组
- byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);
- //声明1个新的DES对象
- DESCryptoServiceProvider desEncrypt=new DESCryptoServiceProvider();
- //开辟一块内存流
- MemoryStream msEncrypt=new MemoryStream();
- //把内存流对象包装成加密流对象
- CryptoStream csEncrypt=new CryptoStream(msEncrypt,desEncrypt.CreateEncryptor(bytesDESKey,bytesDESIV),CryptoStreamMode.Write);
- //把加密流对象包装成写入流对象
- StreamWriter swEncrypt=new StreamWriter(csEncrypt);
- //写入流对象写入明文
- swEncrypt.WriteLine(strPlain);
- //写入流关闭
- swEncrypt.Close();
- //加密流关闭
- csEncrypt.Close();
- //把内存流转换成字节数组,内存流现在已经是密文了
- byte[] bytesCipher=msEncrypt.ToArray();
- //内存流关闭
- msEncrypt.Close();
- //把密文字节数组转换为字符串,并返回
- return UnicodeEncoding.Unicode.GetString(bytesCipher);
- }
- /// <summary>
- /// DES解密方法
- /// </summary>
- /// <param name="strCipher">密文</param>
- /// <param name="strDESKey">密钥</param>
- /// <param name="strDESIV">向量</param>
- /// <returns>明文</returns>
- public string DESDecrypt(string strCipher,string strDESKey,string strDESIV)
- {
- //把密钥转换成字节数组
- byte[] bytesDESKey=ASCIIEncoding.ASCII.GetBytes(strDESKey);
- //把向量转换成字节数组
- byte[] bytesDESIV=ASCIIEncoding.ASCII.GetBytes(strDESIV);
- //把密文转换成字节数组
- byte[] bytesCipher=UnicodeEncoding.Unicode.GetBytes(strCipher);
- //声明1个新的DES对象
- DESCryptoServiceProvider desDecrypt=new DESCryptoServiceProvider();
- //开辟一块内存流,并存放密文字节数组
- MemoryStream msDecrypt=new MemoryStream(bytesCipher);
- //把内存流对象包装成解密流对象
- CryptoStream csDecrypt=new CryptoStream(msDecrypt,desDecrypt.CreateDecryptor(bytesDESKey,bytesDESIV),CryptoStreamMode.Read);
- //把解密流对象包装成读出流对象
- StreamReader srDecrypt=new StreamReader(csDecrypt);
- //明文=读出流的读出内容
- string strPlainText=srDecrypt.ReadLine();
- //读出流关闭
- srDecrypt.Close();
- //解密流关闭
- csDecrypt.Close();
- //内存流关闭
- msDecrypt.Close();
- //返回明文
- return strPlainText;
- }
C# DES的更多相关文章
- 在.NET Core 里使用 BouncyCastle 的DES加密算法
.NET Core上面的DES等加密算法要等到1.2 才支持,我们可是急需这个算法的支持,文章<使用 JavaScriptService 在.NET Core 里实现DES加密算法>需要用 ...
- 使用 JavaScriptService 在.NET Core 里实现DES加密算法
文章<ASP.NET Core love JavaScript>和<跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题> ...
- [C#] 简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen. ...
- 4、DES和RSA简介
DES是分组加密算法,速度快,使用单一密钥,加密解密都使用同一个密钥,一般用于大量数据加密,目前处于半淘汰状态. RSA算法是流式加密算法,速度慢,但是使用成对的密钥,加密解密使用不同的密钥,有利于保 ...
- Android数据加密之Des加密
前言: 端午节前有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...
- 密码学应用(DES,AES, MD5, SHA1, RSA, Salt, Pkcs8)
目录 一.数据加密标准 - Data Encryption Standard(DES) 二.高级加密标准 - Advanced Encryption Standard(AES) 三.消息摘要算法第五版 ...
- When I see you again(加密原理介绍,代码实现DES、AES、RSA、Base64、MD5)
关于网络安全的数据加密部分,本来打算总结一篇博客搞定,没想到东西太多,这已是第三篇了,而且这篇写了多次,熬了多次夜,真是again and again.起个名字:数据加密三部曲,前两部链接如下: 整体 ...
- Java 加解密 AES DES TripleDes
package xxx.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.crypt ...
- .NET和JAVA中BYTE的区别以及JAVA中“DES/CBC/PKCS5PADDING” 加密解密在.NET中的实现
场景:java 作为客户端调用已有的一个.net写的server的webservice,输入string,返回字节数组. 问题:返回的值不是自己想要的,跟.net客户端直接调用总是有差距 分析:平台不 ...
- php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密
PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...
随机推荐
- Supervisor的安装与使用入门
Supervisor是一个进程管理工具,官方的说法 自己开发的应用往往也希望做到随系统自动启动, 而且启动之后最好还能方便的控制其停止/重启. 传统的做法是在 /etc/init.d/ 下建立启动脚本 ...
- 哪里有比较全的hadoop视频教程
robby老师讲了套hadoop视频,讲的比的深入浅出,内容很丰富,把网盘下载地址提供给大家一下: 视频下载啦很大,有图有真相: 1,Hadoop介绍,HDFS和MapReduce工作原理:http: ...
- Chapter 1 Securing Your Server and Network(6):为SQL Server訪问配置防火墙
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38082123,专题文件夹:http://blog.csdn.net/dba_huangz ...
- \\ip 映射 指定的网络名不再可用
问题:\\ip 映射 指定的网络名不再可用 解决方法:服务器端打开服务列表 services.msc 启动两个进程 1.Computer Browser 2. Workstation 就正常了~~ ...
- careercup-排序和查找 11.4
11.4 设想你有一个20GB的文件,每一行一个字符串.请说明将如何对这个文件进行排序. 解法: 当面试官给出20GB大小的限制时,实际上在暗示些什么.就此题而言,这表明他们不希望你将数据全部载入内存 ...
- apache+php+mysql最新版windows下
卸载以前的Apache 1.控制面板先卸载 2.删除E:\Program Files (x86)\Apache Software Foundation下的apache目录 一.安装apache 1.c ...
- lsb_release 提示命令不存在
1. 报错信息 bash: lsb_release: command not found 2. 问题原因 未安装 lsb_release 命令 3. 解决方法 用 yum 命令安装 lsb_relea ...
- Android(java)学习笔记144:Android音视频录制类MediaRecorder用法举例
Android语音录制可以通过MediaRecorder和AudioRecorder.MediaRecorder本来是多媒体录制控件,可以同时录制视频和语音,当不指定视频源时就只录制语音(默认录制语言 ...
- quartz多个scheduler实现
1.首先排除错误用法 SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = sche ...
- day-5
/* 还有几半天了 上午考试暴力暴力暴力... 亏我还写了对拍 没有卵用 T2 差点事 T3不难却没咋么认真想 这tm就很尴尬了23333 下午整理题 一下午.... 晚上打月赛 + 单调队列 继续说 ...