博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#DES加密
阅读量:6376 次
发布时间:2019-06-23

本文共 2654 字,大约阅读时间需要 8 分钟。

using System;

using 
System.Collections.Generic;
using 
System.ComponentModel;
using 
System.Data;
using 
System.Text;
using 
System.Windows.Forms;
using 
System.Security.Cryptography;
//加密部分
using 
System.IO;
 
namespace 
WindowsFormsApplication1
{
    
public 
partial 
class 
Form1 : Form
    
{
        
public 
Form1()
        
{
            
InitializeComponent();
        
}
 
        
private 
static 
byte
[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
        
private 
static 
string 
keyUse =
"12345678"
;
        
private 
static 
string 
keyDe =
"12345678"
;
        
/// <summary>
        
/// DES加密字符串
        
/// </summary>
        
/// <param name="encryptString">待加密的字符串
        
/// <param name="encryptKey">加密密钥,要求为8位
        
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
        
public 
static 
string 
EncryptDES(
string 
encryptString,
string 
encryptKey)
        
{
            
try
            
{
                
byte
[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
                
byte
[] rgbIV = Keys;
                
byte
[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                
DESCryptoServiceProvider dCSP =
new 
DESCryptoServiceProvider();
                
MemoryStream mStream =
new 
MemoryStream();
                
CryptoStream cStream =
new 
CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                
cStream.Write(inputByteArray, 0, inputByteArray.Length);
                
cStream.FlushFinalBlock();
                
return 
Convert.ToBase64String(mStream.ToArray());
            
}
            
catch
            
{
                
return 
encryptString;
            
}
        
}
 
        
/// <summary>
        
/// DES解密字符串
        
/// </summary>
        
/// <param name="decryptString">待解密的字符串
        
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同
        
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
        
public 
static 
string 
DecryptDES(
string 
decryptString,
string 
decryptKey)
        
{
            
try
            
{
                
byte
[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                
byte
[] rgbIV = Keys;
                
byte
[] inputByteArray = Convert.FromBase64String(decryptString);
                
DESCryptoServiceProvider DCSP =
new 
DESCryptoServiceProvider();
                
MemoryStream mStream =
new 
MemoryStream();
                
CryptoStream cStream =
new 
CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                
cStream.Write(inputByteArray, 0, inputByteArray.Length);
                
cStream.FlushFinalBlock();
                
return 
Encoding.UTF8.GetString(mStream.ToArray());
            
}
            
catch
            
{
                
return 
decryptString;
            
}
        
}
 
        
private 
void 
button1_Click(
object 
sender, EventArgs e)
        
{
            
string 
strOrg = TB_ORG.Text;
            
string 
tmp = System.Text.Encoding.Default.GetString(Keys);
//[].ToString();//BitConverter.ToString(Keys).Replace("-", string.Empty);// Keys.ToString();
            
string 
strEp = EncryptDES(strOrg, keyUse);
            
TB_EP.Text = strEp;
        
}
 
        
private 
void 
button2_Click(
object 
sender, EventArgs e)
        
{
            
string 
strEp = TB_EP.Text;
            
string 
tmp = System.Text.Encoding.Default.GetString(Keys);
//BitConverter.ToString(Keys).Replace("-", string.Empty);// Keys.ToString();
            
string 
strDe = DecryptDES(strEp, keyDe);
            
TB_DE.Text = strDe;
        
}
    
}
}

转载地址:http://zdtqa.baihongyu.com/

你可能感兴趣的文章
超融合超越企业传统存储绕不开的六个问题
查看>>
医院CIO的一幅工作对联
查看>>
DPM灾难切换应用场景
查看>>
简单配置Oracle10g DataGuard物理备库
查看>>
网曝支付宝漏洞:手机丢了,支付宝也就完了
查看>>
4 在vCenter Server安装View Composer组件
查看>>
SFB 项目经验-24-为持久聊天室-查询或者增加成员
查看>>
Linux下配置Squid基础教程
查看>>
当Cacti遭遇大流量
查看>>
Outlook Anywhere 客户端配置详解
查看>>
《Windows Server 2008 R2系统管理实战》前言与内容提要
查看>>
轻巧的网络流量实时监控工具NTOPNG
查看>>
Access、Sql 获取当前插入的主键ID
查看>>
聚类算法之DBScan(Java实现)
查看>>
为什么要使用AOP?
查看>>
VC :模板类
查看>>
对C++中string类型的总结
查看>>
Oracle发布公共云Public Cloud
查看>>
表驱动
查看>>
eclipse高亮显示
查看>>