DES.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
namespace Wpfbinding
{
class DES
{
DESCryptoServiceProvider des;
public DES()
{
des = DESCryptoServiceProvider.Create() as DESCryptoServiceProvider;
des.IV = des.Key;
}
public string Key
{
get { return Convert.ToBase64String(des.Key); }
set { des.Key = Convert.FromBase64String(value); }
}
// 加密字符串
public string Encode(string sInputString)
{
byte[] data = Encoding.UTF8.GetBytes(sInputString);
ICryptoTransform desEncrypt = des.CreateEncryptor();
byte[] result = desEncrypt.TransformFinalBlock(data, , data.Length);
return Convert.ToBase64String(result);
}
// 解密字符串
public string Decode(string sInputString)
{
byte[] data = Convert.FromBase64String(sInputString);
ICryptoTransform desDecrypt = des.CreateDecryptor();
byte[] result = desDecrypt.TransformFinalBlock(data, , data.Length);
return Encoding.UTF8.GetString(result);
}
}
}

.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace Wpfbinding
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{ InitializeComponent();
testc();
}
void testc()
{
DES des = new DES(); string str = "测试,Hello Word";
textBlock1.Text = str;
textBlock2.Text = des.Encode(str);
textBlock3.Text = des.Decode(des.Encode(str));
}
}
}

DES内置key加特殊字符处理

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
namespace Wpfbinding
{
class DES
{
    public string strKey = "";
    public string strIV = "Edward.K";
    public string Encrypt(string _strQ)
    {
    byte[] buffer = Encoding.UTF8.GetBytes(_strQ);
     MemoryStream ms = new MemoryStream();
     DESCryptoServiceProvider tdes = new DESCryptoServiceProvider();
      CryptoStream encStream = new CryptoStream(ms, tdes.CreateEncryptor(Encoding.UTF8.GetBytes(strKey), Encoding.UTF8.GetBytes(strIV)), CryptoStreamMode.Write);
     encStream.Write(buffer, , buffer.Length);
     encStream.FlushFinalBlock();
    return Convert.ToBase64String(ms.ToArray()).Replace("+", "%");
    }
    public string Decrypt(string _strQ)
    {
     _strQ = _strQ.Replace("%", "+");
    byte[] buffer = Convert.FromBase64String(_strQ);
    MemoryStream ms = new MemoryStream();
    DESCryptoServiceProvider tdes = new DESCryptoServiceProvider();
     CryptoStream encStream = new CryptoStream(ms, tdes.CreateDecryptor(Encoding.UTF8.GetBytes(strKey), Encoding.UTF8.GetBytes(strIV)), CryptoStreamMode.Write);
    encStream.Write(buffer, , buffer.Length);
     encStream.FlushFinalBlock();
     return Encoding.UTF8.GetString(ms.ToArray());
    }
}
}

DESCryptoServiceProvider加密解密的简单使用例子的更多相关文章

  1. <经验杂谈>C#对CA证书加密解密的简单介绍

    最近做项目接触了一些关于用CA证书加密解密的知识,现在分享一下,加密主要分为对称加密和非对称加密以及单项加密这三种,CA是一个权威的第三方认证机构,CA加密有公钥和私钥之分. 以下是C#读取证书文件进 ...

  2. <经验杂谈>C#使用AES加密解密的简单介绍

    AES 算法是基于置换和代替的.置换是数据的重新排列,而代替是用一个单元数据替换另一个.AES 使用了几种不同的技术来实现置换和替换. 以下是我自己用c#研究出来算法Code: /// <sum ...

  3. 提供openssl -aes-256-cbc兼容加密/解密的简单python函数

    原文链接:http://joelinoff.com/blog/?p=885 这里的示例显示了如何使用python以与openssl aes-256-cbc完全兼容的方式加密和解密数据.它是基于我在本网 ...

  4. Java实现一个简单的加密解密方法

    Crypto是Java语言写的一个简单的加密解密方法. 使用方法: 加密方法 String cipherte=Enande.encrypt(content, pass): 解密方法 Enande.de ...

  5. AES加密解密的例子小结

    话不多说,先放上代码,一共有两个文件:AES.php(aes算法类文件)和aesDemo.php(应用实例文件),这里只贴出aesDemo.php,其他的看附件吧!aesDemo.php: 例子,   ...

  6. php AES加密解密的例子

    一共有两个文件:AES.php(aes算法类文件)和aesDemo.php(应用实例文件) aesDemo.php:例子, <?php require_once('./AES.php'); // ...

  7. DESCryptoServiceProvider 类加密解密

    DESCryptoServiceProvider  点击查看介绍 加密解密辅助类:点击查看 私钥加密 定义:定义一个包装对象来访问加密服务提供程序 (CSP) 版本的数据加密标准 (DES) 算法.  ...

  8. RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密

    原文:RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 C#在using System.Security.Cryptograph ...

  9. 简单的JavaScript字符串加密解密

    简单的JavaScript字符串加密解密 <div> <input type="text" id="input" autofocus=&quo ...

随机推荐

  1. hdu 4715 Difference Between Primes 2013年ICPC热身赛A题 素数水题

    题意:给出一个偶数(不论正负),求出两个素数a,b,能够满足 a-b=x,素数在1e6以内. 只要用筛选法打出素数表,枚举查询下就行了. 我用set储存素数,然后遍历set里面的元素,查询+x后是否还 ...

  2. !!!!!安卓界面总是显示载入进度条的问题,没事别乱用ListFragment

    近期的安卓应用快完工了.可是个别界面有瑕疵,怎么改动都解决不了.挥之不去的阴影.问题例如以下: 在界面上,数据已经载入完成了.可还是有一股圆形的进度条,感觉它老是在载入什么东西,严重影响界面美观: 1 ...

  3. Bootstrap表格的使用

    先定义前端table <table class="table table-striped table-bordered table-hover" id="expan ...

  4. Go成功的项目

    nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建.packer:用来生成不同平台的镜像文件,例如V ...

  5. [C++]C++中的运行时类型检测

    Date:2014-1-3 Summary: 使用C++中的运行时类型检测.(文章重点在于记录本人的使用情况,并非深层讨论RTTI) Contents:写习惯C#的我,在C++依然存在哪些.NET的惯 ...

  6. IE 加速插件之 Google Chrome Frame

    前言 IE 8 及以下版本的速度较慢. 特别是前端的js 和 css 内容较多时尤为突出. 就笔者的开发经验来说GWT, Ext JS, raphael , draw2d 等开发的系统在IE下使用是相 ...

  7. ThinkPHP---RBAC

    一.什么是RBAC 基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注. 在RBAC中,权限与角色相关联,用户通 ...

  8. FZU2177(dp)

    传送门:ytaaa 题意:有n个***(不能调换顺序),可以组成x(x<n)个炸弹,每个炸弹的威力为该组的(max-min)^2,现在给出n个***的威力值,求能组成所有炸弹的最大威力和. 分析 ...

  9. Extjs 3.4 和 web SSH(Ajaxterm)-howge-ChinaUnix博客

    Extjs 3.4 和 web SSH(Ajaxterm)-howge-ChinaUnix博客   Extjs 3.4 和 web SSH(Ajaxterm) 2013-04-07 15:20:17 ...

  10. mongodb分页优化

    现在参与一个项目的开发,需要用java查询mongodb数据库,在这里分页用的skip sort 和limit结合,查询语句如下(已经在相关字段建立索引) DBCursor cursor = coll ...