需要引用名称空间

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. Java编程思想学习笔记_3(继承,内部类)

    一.继承与清理 如果某个类需要去清理自身的资源,那么必须用心为其创建回收垃圾的方法,而如果此类有导出的子类,那么必须在导出类中覆盖回收的方法,当覆盖被继承类的回收垃圾的方法的时候,需要注意销毁的顺序应 ...

  2. c++中vector的学习

    根据各种做题,发现数组并不是很适用于各种情况,当涉及到内存占用的时候,数组可能就没有vector的优势了,而vector,动态数组,比较适合某些情况. 接下来看看比较基本的vector用法: 1 #i ...

  3. number-of-segments-in-a-string

    https://leetcode.com/problems/number-of-segments-in-a-string/ package com.company; class Solution { ...

  4. svn设置提交忽略某些文件或文件夹

    在svn客户端,想设置忽略提交.class文件,通过 properties > New > Other 添加一个忽略的属性,,还是不行:部分屏蔽了,部分class还是在列表中 再次参考了一 ...

  5. hdu4418(概率dp + 高斯消元)

    应该是一个入门级别的题目. 但是有几个坑点. 1. 只选择x能到达的点作为guass中的未知数. 2. m可能大于n,所以在构建方程组时未知数的系数不能直接等于,要+= 3.题意貌似说的有问题,D为- ...

  6. 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

    <!--解决让程序在集成模块通道下运行--> <system.webServer> <validation validateIntegratedModeConfigura ...

  7. eclips引入Java源代码

    window->>preferences->>Java->Installed JRES 如图所示 这是中文本的 点击“Installed JRES”选择如下图所示的jdk ...

  8. phalcon: 视图分层渲染,或包含其他页面

    一:视图分层显现: 比如:在一个页面中,头部.底部固定不变,只有中间部分随操作变换显示.那么可以将中间部分切出来,剩余部分用作固定框架,放入:app/views/layouts目录中,起名为:base ...

  9. unity3d模型制作规范

    1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. 2 ...

  10. 【bzoj1041】圆上的整点

    题意 给定一个圆\(x^2+y^2=z^2\),求圆周上有多少个点的坐标是整数. \(r\leq 2*10^9\) 分析 这道题目关键要知道一些勾股数的性质,剩下的就很好处理了. 勾股数的性质 参考: ...