需要引用名称空间

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

具体代码:

     public class CryptoHelper
{
/// <summary>
/// 使用DES加密
/// </summary>
/// <param name="plain">明文</param>
/// <param name="key">加密钥匙</param>
/// <param name="iv">向量</param>
/// <returns>返回密文</returns>
public static string DesEncode(string plain, string key, string iv)
{
//把密钥转换成字节数组
byte[] keyBytes = Encoding.ASCII.GetBytes(key); //把向量转换成字节数组
byte[] ivBytes = Encoding.ASCII.GetBytes(iv); //声明1个新的DES对象
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //开辟一块内存流
MemoryStream msEncrypt = new MemoryStream(); //把内存流对象包装成加密流对象
CryptoStream csEncrypt = new CryptoStream(msEncrypt, des.CreateEncryptor(keyBytes, ivBytes), CryptoStreamMode.Write); //把加密流对象包装成写入流对象
StreamWriter swEncrypt = new StreamWriter(csEncrypt); //写入流对象写入明文
swEncrypt.WriteLine(plain); //写入流关闭
swEncrypt.Close(); //加密流关闭
csEncrypt.Close(); //把内存流转换成字节数组,内存流现在已经是密文了
byte[] bytesCipher=msEncrypt.ToArray(); //内存流关闭
msEncrypt.Close();
//将字节数组转化成Base64字符串
return Convert.ToBase64String(bytesCipher);
} public static string DesDeCode(string cipher, string key, string iv)
{
//将密文通过Base64位还原成字节数组
byte[] cipherByte = Convert.FromBase64String(cipher); //把密钥转换成字节数组
byte[] keyBytes = Encoding.ASCII.GetBytes(key); //把向量转换成字节数组
byte[] ivBytes = Encoding.ASCII.GetBytes(iv); //声明1个新的DES对象
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //开辟一块内存流,并存放密文字节数组
MemoryStream msDecrypt = new MemoryStream(cipherByte); //把内存流对象包装成解密流对象
CryptoStream csDecrypt = new CryptoStream(msDecrypt, des.CreateDecryptor(keyBytes, ivBytes), CryptoStreamMode.Read); //把解密流对象包装成写入流对象
StreamReader srDecrypt = new StreamReader(csDecrypt); //明文=读出流的读出内容
string strPlainText=srDecrypt.ReadLine(); //读出流关闭
srDecrypt.Close(); //解密流关闭
csDecrypt.Close(); //内存流关闭
msDecrypt.Close(); //返回明文
return strPlainText;
}
}

C# DES加密的更多相关文章

  1. Android数据加密之Des加密

    前言: 端午节前有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...

  2. php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密

    PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...

  3. DES加密

    接口等加密字段 import java.security.SecureRandom; import javax.crypto.Cipher;import javax.crypto.SecretKey; ...

  4. c# DES加密解密

    class DESHelper { string _iv = "9AUP"; string _key = "9d"; /// <summary> / ...

  5. (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

    我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...

  6. PYTHON实现DES加密及base64源码

    要求是实现DES加密,解密,我是用python实现的,还是有挺多坑的,改bug就改了挺久,加密实现后,解密过程就比较轻松. 另外,附加base64编码源码 要求:输入秘钥为64位二进制数(有效位为56 ...

  7. des加密解密——java加密,php解密

    最近在做项目中,遇到des加密解密的问题. 场景是安卓app端用des加密,php这边需要解密.之前没有接触过des这种加密解密算法,但想着肯定会有demo.因此百度,搜了代码来用.网上代码也是鱼龙混 ...

  8. DES加密解密

    加密后生成Base64字符串,并去除'='字符. 加密后替换掉'+',这样加密后的字符串可以作为url参数传递. using System; using System.IO; using System ...

  9. iOS 开发之路(AES/DES加密实现) 三

    最近接触的这个项目由于以前服务器上用的是DES/CBC/PKCS5Padding加密方式,为了让在iOS上的加密结果与服务器端保持一致,我做了很多尝试,现在分享给大家.PS:现在不推荐用DES了,只是 ...

  10. php des 加密解密实例

    des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 $iv_size = mcrypt_ ...

随机推荐

  1. (一)mtg3000常见操作

    一.查看MTG3000主控板IP地址: 重启设备后一直跑到shell,用户名和密码都输入admin,然后输入en进入命令行界面,输入sh int可查看设备IP等信息. 2.升级app.web程序

  2. 使用SurfaceView

    一.新建一个工程“LearnSurfaceView” 二.新建一个类“MySurfaceView” public class MySurfaceView extends SurfaceView imp ...

  3. D3.js 选择元素和绑定数据/使用数据

    选择元素和绑定数据是 D3 最基础的内容,本文将对其进行一个简单的介绍. 一.如何选择元素 在 D3 中,用于选择元素的函数有两个: d3.select():是选择所有指定元素的第一个 d3.sele ...

  4. localhost访问不了

    安装phpstudy后,localhost访问不了,在忙了很久之后,我吧virtualbox卸载了,把百度云也卸载了,然后就可以了,可能是因为公司的网络限制比较多,但百度云也太肯了, 也是看别人装了, ...

  5. 为什么要baidu/Google问题 尽量少在群里问问题

    群里问也是可以的 但是 不能指望群里的人详细的回答 有时候的回答会很到位 但是 也可以 应该更多的去网络上搜索信息 因为 那是别人已经写好的 我们为什么不顺便去获取呢 别人花费了精力 我们要尽量运用 ...

  6. jsp 颜色和表格控制

    表格控制: table{table-layout:fixed; word-wrap:break-word; word-break:break-all;} 颜色列表:

  7. [saiku] 将saiku自带的H2嵌入式数据库迁移到本地mysql数据库

    saiku数据库的表和用户默认创建是在启动项目的时候,通过初始化 saiku-beans.xml 中的 h2database 这个 bean 执行org.saiku.service.Database类 ...

  8. CentOS 7.x安装配置

    简述 VMware可以创建多个虚拟机,每个虚拟机上都可以安装各种类型的操作系统.安装方法也有很多种.下面,主要以ISO镜像安装为例,介绍CentOS 7.x的安装过程及相关的参数设置. 简述 创建虚拟 ...

  9. hdu----(1847)Good Luck in CET-4 Everybody!(简单巴什博奕)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  10. HDUOJ----2485 Destroying the bus stations(2008北京现场赛A题)

    Destroying the bus stations                                                                          ...