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 加密解密的更多相关文章

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

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

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

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

  3. DES加密解密

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

  4. 一个java的DES加密解密类转换成C#

    一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...

  5. Golang之AES/DES加密解密

    AES/DES加密/解密涉及4个概念:1. Block, 也叫分组, 相应加密/解密的算法. 2. BlockMode, 模式, 相应加密/解密的处理.3. InitalVectory, 初始向量4. ...

  6. java 实现 DES加密 解密算法

    DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...

  7. 兼容PHP和Java的des加密解密代码分享

    这篇文章主要介绍了兼容PHP和Java的des加密解密代码分享,适合如服务器是JAVA语言编写,客户端是PHP编写,并需要des加密解密的情况,需要的朋友可以参考下 作为一个iOS工程师来解决安卓的问 ...

  8. php实现和c#一致的DES加密解密

    原文:php实现和c#一致的DES加密解密 php实现和c#一致的DES加密解密,可以从网上搜到一大堆,但是测试后发现都没法用.以下正确代码是我经过苦苦才找到的.希望大家在系统整合时能用的上. 注意: ...

  9. 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

    原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语 ...

  10. php中des加密解密 匹配C#des加密解密 对称加密

    原文:php中des加密解密 匹配C#des加密解密 对称加密 网上找来的 php des加密解密 完全匹配上一篇C# 字符串加密解密函数  可以用于C#和php通信 对数据进行加密,其中$key 是 ...

随机推荐

  1. mycat源码分析

    http://www.cnblogs.com/fernandolee24/p/5196367.html

  2. My way to Python - Day02

    版权声明: 本文中的资料均来自于互联网.将各路内容摘抄于此,作为学习笔记,方便用作后面翻阅查看.如果原作者对文中内容的引用有任何版权方面的问题,请随时联系,我将尽快处理. 特别鸣谢:武沛齐 <P ...

  3. EffectiveC#1--尽可能的使用属性(property),而不是数据成员(field)

    1.属性可以进行数据绑定 2.可以做数据安全校验.在对数据检测时,如果发现数据不满足条件,最好以抛出异常的形式来解决 如下代码不可取 public string Name { get { if(thi ...

  4. 提示框的优化之自定义Toast组件之(二)Toast组件的业务逻辑实现

    在java下org.socrates.mydiary.activity下LoginActivity下自定义一个方法showCustomerToast()  public class LoginAct ...

  5. ORA-01152错误解决方法(转)

    具体步骤如下: startup force; alter system set "_allow_resetlogs_corruption"=true scope=spfile; r ...

  6. 蘑菇街2015校招技术类笔试题A卷,回忆版(杭州站)

    笔试时间:10月9号 下午 1.一串数据的最大递增序列,输出个数 例如 4,2, 6,3, 1,5, 最大递增序列为, 2,3, 5,输出3, 2.求两个整型数据集合的交集,尽可能少用时间. 假设两个 ...

  7. php中12个魔术方法

    本文列举了php面向对象当中12个魔术方法,并对此进行一一详细介绍,希望对新手有所帮助. 1.构造方法: __construct() 参数:自定义 触发时机:new的一瞬间自动调用 作用:初始化成员属 ...

  8. Primo Ramdisk配置教程

    首先感谢xiaohu在太平洋电脑网上发表的“将内存当硬盘用!Primo Ramdisk图文教程”,本文主要是将其图文整理了一下,以方便以后使用. 原文地址:http://fashion.pconlin ...

  9. UrlDownloadFile, 线程下载文件, 带进度条

    unit FileDownLoadThread; interface uses Classes, SysUtils, Windows, ActiveX, UrlMon; const S_ABORT = ...

  10. SqlServer sys.partition_view

    --查看partition的四个视图 select * from sys.partition_functions--查看分区函数 select * from sys.partition_paramet ...