C# DES加密
需要引用名称空间
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加密的更多相关文章
- Android数据加密之Des加密
前言: 端午节前有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...
- php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密
PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...
- DES加密
接口等加密字段 import java.security.SecureRandom; import javax.crypto.Cipher;import javax.crypto.SecretKey; ...
- c# DES加密解密
class DESHelper { string _iv = "9AUP"; string _key = "9d"; /// <summary> / ...
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...
- PYTHON实现DES加密及base64源码
要求是实现DES加密,解密,我是用python实现的,还是有挺多坑的,改bug就改了挺久,加密实现后,解密过程就比较轻松. 另外,附加base64编码源码 要求:输入秘钥为64位二进制数(有效位为56 ...
- des加密解密——java加密,php解密
最近在做项目中,遇到des加密解密的问题. 场景是安卓app端用des加密,php这边需要解密.之前没有接触过des这种加密解密算法,但想着肯定会有demo.因此百度,搜了代码来用.网上代码也是鱼龙混 ...
- DES加密解密
加密后生成Base64字符串,并去除'='字符. 加密后替换掉'+',这样加密后的字符串可以作为url参数传递. using System; using System.IO; using System ...
- iOS 开发之路(AES/DES加密实现) 三
最近接触的这个项目由于以前服务器上用的是DES/CBC/PKCS5Padding加密方式,为了让在iOS上的加密结果与服务器端保持一致,我做了很多尝试,现在分享给大家.PS:现在不推荐用DES了,只是 ...
- php des 加密解密实例
des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 $iv_size = mcrypt_ ...
随机推荐
- Android应用程序构成
一个Android应用程序一般是由以下4个组件构成的: 活动(Activity) 意图(Intent) 服务(Service) 内容提供器(Content Provider) 这4个组件是构成andr ...
- jQuery DOM基础
jQuery DOM基础 1.对元素内容的获取和修改: 表单用value(),普通元素用html()和text(). html() html(value)设置和获取html内容,有html标签会自动 ...
- 转 java 类 单例
转 单例概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类只能有一个实例. 2.单例类必须自己自己创建自己的唯一 ...
- css 颜色渐变
.top_nav { width: 100%; height: 29px; /* 如果浏览器不支持渐变,使用图像作为背景 */ background: u ...
- opencl 学习资源
1.AMD opencl-optimization-guide http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated ...
- 2016-6-15-de novo文献阅读
准备读四篇denovo的文献: Nature Biotechnology(2015) - Sequencing of allotetraploid cotton (Gossypium hirsutum ...
- GreenPlum简单性能测试与分析
版权声明:本文由黄辉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/195 来源:腾云阁 https://www.qclou ...
- java 字符串(正则表达式)未完
正则表达式: 其实就是用于操作字符串的一个规则.(以某种方式描述字符串) 基础: 1.描述一个整数:\d(表示一位数字) \\d(\\ 表示要插入一个正则表达式)表示一位数字 \\\\ 插入一个普通 ...
- alert与console.log
1.alert在页面中弹出 console.log是在控制台显示 例子 var aa="Silence"; alert(typeof(aa)); console.log(typeo ...
- [maven] 常用仓库地址
共有的仓库 http://mvnrepository.com/ http://repo1.maven.org/maven2/ http://repository.jboss.com/maven2/ h ...