DESCryptoServiceProvider加密解密的简单使用例子
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加密解密的简单使用例子的更多相关文章
- <经验杂谈>C#对CA证书加密解密的简单介绍
最近做项目接触了一些关于用CA证书加密解密的知识,现在分享一下,加密主要分为对称加密和非对称加密以及单项加密这三种,CA是一个权威的第三方认证机构,CA加密有公钥和私钥之分. 以下是C#读取证书文件进 ...
- <经验杂谈>C#使用AES加密解密的简单介绍
AES 算法是基于置换和代替的.置换是数据的重新排列,而代替是用一个单元数据替换另一个.AES 使用了几种不同的技术来实现置换和替换. 以下是我自己用c#研究出来算法Code: /// <sum ...
- 提供openssl -aes-256-cbc兼容加密/解密的简单python函数
原文链接:http://joelinoff.com/blog/?p=885 这里的示例显示了如何使用python以与openssl aes-256-cbc完全兼容的方式加密和解密数据.它是基于我在本网 ...
- Java实现一个简单的加密解密方法
Crypto是Java语言写的一个简单的加密解密方法. 使用方法: 加密方法 String cipherte=Enande.encrypt(content, pass): 解密方法 Enande.de ...
- AES加密解密的例子小结
话不多说,先放上代码,一共有两个文件:AES.php(aes算法类文件)和aesDemo.php(应用实例文件),这里只贴出aesDemo.php,其他的看附件吧!aesDemo.php: 例子, ...
- php AES加密解密的例子
一共有两个文件:AES.php(aes算法类文件)和aesDemo.php(应用实例文件) aesDemo.php:例子, <?php require_once('./AES.php'); // ...
- DESCryptoServiceProvider 类加密解密
DESCryptoServiceProvider 点击查看介绍 加密解密辅助类:点击查看 私钥加密 定义:定义一个包装对象来访问加密服务提供程序 (CSP) 版本的数据加密标准 (DES) 算法. ...
- RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
原文:RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 C#在using System.Security.Cryptograph ...
- 简单的JavaScript字符串加密解密
简单的JavaScript字符串加密解密 <div> <input type="text" id="input" autofocus=&quo ...
随机推荐
- Spring的事件处理
Spring对事件有一些支持,因为项目须要,所以近期小小研究了下究竟这个怎么能够方便的用在实际项目其中来. 说起事件这个东西,事实上就是借鉴的那个观察者模式.这里面涉及到事件源.事件监听者.事件公布者 ...
- Swift - 给表格添加Cell的显示动画(3D缩放)
下面的一个样例是让tableView显示数据的时候具有一个很炫的3D缩放效果. 我们只需要实现tableView的willDisplayCell方法.看方法名就知道这是在Cell将要显示的时候执行的方 ...
- Delphi中使用GDI+进行绘图(2)
2)使用IGDIPlus接口 (1)下载安装所需软件 可以在以下地址下载IGDI+最新的安装程序. http://www.mitov.com/products/igdi+ www.igdiplus.o ...
- C++ delete 和 delete []
C++ delete 和 delete [] 简单结论: new delete new [] delete [] 文章 : 对 delete [] 的声明 void operator delete ...
- fake it till you become it
fake it till you become it_你泛起山川烟波里的不是我._百度空间 fake it till you become it
- 低头看—SQL视频
迷迷糊糊半个月过去了,耿大姐的数据库视频也在一知半解中看完.虽然耿大妈讲的很详细,很细心,但是我还是时不时的犯困(还不如看儿童英语动画片有精神呢)视频看是看完了,但东西不是自己的.这个时候就需要“颗粒 ...
- 开源yYmVc项目 v 0.2 版本号介绍
项目地址:https://code.csdn.net/hacke2/yymvc 本版本号主要实现下面几点功能: 1.框架入口基于过滤器统一实现,action后缀动态配置 2.action配置模仿str ...
- Urxvt - awesome
Urxvt - awesome Urxvt From awesome Jump to: navigation, search rxvt-unicode (urxvt for short) is a c ...
- 设置SVN忽略文件和文件夹(文件夹)
在多数项目中你总会有文件和文件夹不须要进行版本号控制.这可能包含一些由编译器生成的文件,*.obj,*.lst,也许是一个用于存放可运行程序的输出文件夹.仅仅要你提交改动,TortoiseSVN 就会 ...
- 一张图总结Google C++编程规范(Google C++ Style Guide)
Google C++ Style Guide是一份不错的C++编码指南,我制作了一张比較全面的说明图,能够在短时间内高速掌握规范的重点内容.只是规范毕竟是人定的,记得活学活用.看图前别忘了阅读以下三条 ...