zoukankan
html css js c++ java
对称加密(DES)
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Security.Cryptography;
using
System.IO;
namespace
Component
{
public
class
Security
{
public
Security()
{
}
//
默认密钥向量
private
static
byte
[] Keys
=
{
0x12
,
0x34
,
0x56
,
0x78
,
0x90
,
0xAB
,
0xCD
,
0xEF
}
;
/**/
/**/
/**/
///
<summary>
///
DES加密字符串
///
</summary>
///
<param name="encryptString">
待加密的字符串
</param>
///
<param name="encryptKey">
加密密钥,要求为8位
</param>
///
<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>
///
<param name="decryptKey">
解密密钥,要求为8位,和加密密钥相同
</param>
///
<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;
}
}
}
}
查看全文
相关阅读:
MySQL:批量修改表的排序规则
Python黑客编程3网络数据监听和过滤
springboot redis 项目实战 完整篇
C#读取U盘序列号
AS3,ReferenceError: Error #1056: 无法为 ×× 创建属性 ×××。
知道挖掘机如何从货车上下来吗?
一次进销存软件架构的实践(二)——业务外观层设计
重构你的软件企业
遇到了火狐扩展全部丢失的问题
分布式系统设计原理与方案
原文地址:https://www.cnblogs.com/weixu/p/864342.html
最新文章
laravelexcel导入/导出功能
10个非常有用的CSS技巧 优化https://developers.google.com/speed/articles/ p
jQuery插件ColorBox的参数设置 p
深入入门正则表达式(java) 1 入门基础 p
Highcharts属性 p
Js获取当前日期时间及其它操作(jquery?) p
前端工程师必备:细数那些好用的网站开发工具 p
Query模拟新窗口打开 轻松使用javascript创建新窗口 p
Highcharts一些属性 p
在FF里如果里面的元素加了float:left(right),它就不会被撑开的,也就是说的 它的高度是0,如果正常显示,必须加上:overflow:auto p
热门文章
phpfpm 和环境变量的关系
ORACLE函数大全
在Oracle中使用内部关键字做字段名
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 和 row_number() OVER ( ORDER BY COL2)
详细讲述Oracle中的to_date参数含义
报表设计器之遐想
layui图标记录
win10 配置nginx的https
查看端口被占用?
sprinboot 通过@Aspect 获取接口上的注解, 若依改造为mybatisplus,并支持多数据源
Copyright © 2011-2022 走看看