C# DES 加密解密
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO; namespace MTR.Library.CommonHelper
{
public class DESEncryptHelper
{
/// <summary>
/// Encrypt string
/// </summary>
/// <param name="value">The string which to be encrypted.</param>
/// <returns>The value after being encrypted.</returns>
public static string Encrypt(string value)
{
return Encrypt(value, System.Configuration.ConfigurationManager.AppSettings["pwd"]);
} /// <summary>
/// Encrypt string
/// </summary>
/// <param name="value">The string which to be encrypted.</param>
/// <param name="password">The password.</param>
/// <returns>The value after being encrypted.</returns>
public static string Encrypt(string value, string password)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(password.Substring(, ));
byte[] rgbIV = Encoding.UTF8.GetBytes(password.Substring(, ));
byte[] inputByteArray = Encoding.UTF8.GetBytes(value);
using (DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider())
{
using (MemoryStream mStream = new MemoryStream())
{
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, , inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
}
}
catch (Exception ex)
{
throw new Exception("Error when encrypting data", ex);
}
} /// <summary>
/// Decrypt string
/// </summary>
/// <param name="value">The string which to be decrypted.</param>
/// <returns>The value after being decrypted.</returns>
public static string Decrypt(string value)
{
return Decrypt(value, System.Configuration.ConfigurationManager.AppSettings["pwd"]);
} /// <summary>
/// Decrypt string
/// </summary>
/// <param name="value">The string which to be decrypted.</param>
/// <param name="password">The password.</param>
/// <returns>The value after being decrypted.</returns>
public static string Decrypt(string value, string password)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(password.Substring(, ));
byte[] rgbIV = Encoding.UTF8.GetBytes(password.Substring(, ));
byte[] inputByteArray = Convert.FromBase64String(value);
using (DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider())
{
using (MemoryStream mStream = new MemoryStream())
{
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, , inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch (Exception ex)
{
throw new Exception("Error when decrypting data", ex);
}
}
}
}
C# DES 加密解密的更多相关文章
- php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密
PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...
- des加密解密——java加密,php解密
最近在做项目中,遇到des加密解密的问题. 场景是安卓app端用des加密,php这边需要解密.之前没有接触过des这种加密解密算法,但想着肯定会有demo.因此百度,搜了代码来用.网上代码也是鱼龙混 ...
- DES加密解密
加密后生成Base64字符串,并去除'='字符. 加密后替换掉'+',这样加密后的字符串可以作为url参数传递. using System; using System.IO; using System ...
- 一个java的DES加密解密类转换成C#
一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...
- Golang之AES/DES加密解密
AES/DES加密/解密涉及4个概念:1. Block, 也叫分组, 相应加密/解密的算法. 2. BlockMode, 模式, 相应加密/解密的处理.3. InitalVectory, 初始向量4. ...
- java 实现 DES加密 解密算法
DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...
- 兼容PHP和Java的des加密解密代码分享
这篇文章主要介绍了兼容PHP和Java的des加密解密代码分享,适合如服务器是JAVA语言编写,客户端是PHP编写,并需要des加密解密的情况,需要的朋友可以参考下 作为一个iOS工程师来解决安卓的问 ...
- php实现和c#一致的DES加密解密
原文:php实现和c#一致的DES加密解密 php实现和c#一致的DES加密解密,可以从网上搜到一大堆,但是测试后发现都没法用.以下正确代码是我经过苦苦才找到的.希望大家在系统整合时能用的上. 注意: ...
- 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)
原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语 ...
- php中des加密解密 匹配C#des加密解密 对称加密
原文:php中des加密解密 匹配C#des加密解密 对称加密 网上找来的 php des加密解密 完全匹配上一篇C# 字符串加密解密函数 可以用于C#和php通信 对数据进行加密,其中$key 是 ...
随机推荐
- mycat源码分析
http://www.cnblogs.com/fernandolee24/p/5196367.html
- My way to Python - Day02
版权声明: 本文中的资料均来自于互联网.将各路内容摘抄于此,作为学习笔记,方便用作后面翻阅查看.如果原作者对文中内容的引用有任何版权方面的问题,请随时联系,我将尽快处理. 特别鸣谢:武沛齐 <P ...
- EffectiveC#1--尽可能的使用属性(property),而不是数据成员(field)
1.属性可以进行数据绑定 2.可以做数据安全校验.在对数据检测时,如果发现数据不满足条件,最好以抛出异常的形式来解决 如下代码不可取 public string Name { get { if(thi ...
- 提示框的优化之自定义Toast组件之(二)Toast组件的业务逻辑实现
在java下org.socrates.mydiary.activity下LoginActivity下自定义一个方法showCustomerToast() public class LoginAct ...
- ORA-01152错误解决方法(转)
具体步骤如下: startup force; alter system set "_allow_resetlogs_corruption"=true scope=spfile; r ...
- 蘑菇街2015校招技术类笔试题A卷,回忆版(杭州站)
笔试时间:10月9号 下午 1.一串数据的最大递增序列,输出个数 例如 4,2, 6,3, 1,5, 最大递增序列为, 2,3, 5,输出3, 2.求两个整型数据集合的交集,尽可能少用时间. 假设两个 ...
- php中12个魔术方法
本文列举了php面向对象当中12个魔术方法,并对此进行一一详细介绍,希望对新手有所帮助. 1.构造方法: __construct() 参数:自定义 触发时机:new的一瞬间自动调用 作用:初始化成员属 ...
- Primo Ramdisk配置教程
首先感谢xiaohu在太平洋电脑网上发表的“将内存当硬盘用!Primo Ramdisk图文教程”,本文主要是将其图文整理了一下,以方便以后使用. 原文地址:http://fashion.pconlin ...
- UrlDownloadFile, 线程下载文件, 带进度条
unit FileDownLoadThread; interface uses Classes, SysUtils, Windows, ActiveX, UrlMon; const S_ABORT = ...
- SqlServer sys.partition_view
--查看partition的四个视图 select * from sys.partition_functions--查看分区函数 select * from sys.partition_paramet ...