EncryptHelper
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
namespace Sheng.Common
{
/// <summary>
/// 加密帮助类
/// </summary>
public class EncryptHelper
{
/// <summary>
/// MD5加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string MD5DecryptString(string str)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] md5Source = System.Text.Encoding.UTF8.GetBytes(str);
byte[] md5Out = md5.ComputeHash(md5Source);
return Convert.ToBase64String(md5Out);
}
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="sInputString">输入字符</param>
/// <param name="sKey">Key</param>
/// <returns>加密结果</returns>
public string DESEncryptString(string sInputString, string sKey)
{
try
{
byte[] data = Encoding.Default.GetBytes(sInputString);
byte[] result;
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey); //密钥
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); //初始化向量
ICryptoTransform desencrypt = DES.CreateEncryptor(); //加密器对象
result = desencrypt.TransformFinalBlock(data, 0, data.Length); //转换指定字节数组的指定区域
return BitConverter.ToString(result);
}
catch (Exception ex)
{
//ex.Message = "DES加密异常";
throw ex;
}
}
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="sInputString">输入字符</param>
/// <param name="sKey">Key</param>
/// <returns>解密结果</returns>
public string DESDecryptString(string sInputString, string sKey)
{
try
{
//将字符串转换为字节数组
string[] sInput = sInputString.Split("-".ToCharArray());
byte[] data = new byte[sInput.Length];
byte[] result;
for (int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], System.Globalization.NumberStyles.HexNumber);
}
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateDecryptor();
result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.Default.GetString(result);
}
catch (Exception ex)
{
//ex.Message = "DES解密异常";
throw ex;
}
}
}
}
转载于:https://www.cnblogs.com/Mr_Sheng/archive/2010/01/08/1642078.html
EncryptHelper相关推荐
- 【开源】分享一个前后端分离方案-前端angularjs+requirejs+dhtmlx 后端asp.net webapi
一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年a ...
- C# xml通过xslt转换为html输出
html效果截图: 1.首先分析html代码结构: 结果如图: 2.调用接口返回的数据格式: 3.由第一步可看出每2个数据为一行并排显示,后台返回的数据总数可能为奇数个或偶数个,对应该生成的xml结构 ...
- pyDes 实现 Python 版的 DES 对称加密/解密--转
https://my.oschina.net/leejun2005/blog/586451 手头有个 Java 版的 DES 加密/解密程序,最近想着将其 Python 重构下,方便后续脚本解析,捣鼓 ...
- 开始你的api:NetApiStarter
在此之前,写过一篇 给新手的WebAPI实践 ,获得了很多新人的认可,那时还是基于.net mvc,文档生成还是自己闹洞大开写出来的,经过这两年的时间,netcore的发展已经势不可挡,自己也在不断的 ...
- .NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?
前言 获取UnionID是开发微信公众号/小程序中很有必要的一个环节,特别是针对一个公司拥有多个公众号小程序而推出的机制,实现打通账户一体化,用UnionID来区分多平台的唯一性. 官方的解释:如果开 ...
- Entity Framework 与 面向对象
说要分享,我了个*,写了一半放草稿箱了两个星期都快发霉了,趁着周末写完发出来吧. 文章分为五部分: 基础.类讲述的是用到的一些EF与面向对象的基础: 业务是讲怎么划分设计业务: 设计模式和工作模式讲述 ...
- 字符串加密与解密_一种可以用在程序加密的功能
本篇博客会有两篇代码,均为C# 编写而成.其中一篇为先行的各种加密技术如何使用(转载出处会在文末注明):另一篇为利用以上加密技术做出的一个类库,可以使程序捆绑在运行此程序的硬件并限定使用时间,十分高效 ...
- WeChat - 微信公众号开发之.Net Core接入
.net进行微信公众号开发的例子好像比较少,这里做个笔记 首先,我们需要让微信能访问到我们的项目,所以要么需要有一个可以部署项目的连接到公网下的服务器,要么可以通过端口转发将请求转发到我们的项目,总之 ...
- C#实现带盐值加密,适配JAVA Shiro加密
C#实现带盐值加密,适配JAVA Shiro加密 前言 核心代码 Java代码 C#代码 注意 前言 工业领域上位机软件与管理系统通常使用不同编程语言实现,比如我们的上位机软件通常使用C#,而MES. ...
最新文章
- 约束布局ConstraintLayout看这一篇就够了
- 如何兼容並蓄Android Studio 與 Eclipse 的優點, 減少顧此失彼的缺憾
- CSS实现英文或拼音单词首字母大写
- 一个页面中多个window.onload = function(){}冲突问题解决思路
- 概念介绍(机器学习)
- 万国数据联合阿里云发布混合云系列产品 助力企业落地云端
- careercup-树与图 4.6
- 170405、java版MD5工具类
- 基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口
- appium for java教程_appium自动化测试入门(java版)
- 简单调整配置深度Linux-15迅速开始学习工作
- 显卡dos测试软件,A+N卡测试说明_早期显卡DOS版本
- 超强大的数学计算器——WolframAlpha(含安卓下载连接)
- 《智能养老》总体设计方案
- 实验四、SPOOLing技术
- 测试开发工作者日记:(楚汉传奇-it职场)2020.6.24-6.27
- linux kernel 网络协议栈之GRO(Generic receive offload)
- [安全攻防进阶篇] 二.如何学好逆向分析、逆向路线推荐及吕布传游戏逆向案例
- unity基础知识----unity界面菜单翻译
- 开关电源波纹的产生、测量及抑制,一篇全搞定!
热门文章
- 公布几个流氓软件分析报告——哇哇资讯精灵
- linux网卡驱动对XDP支持情况
- 修改GDAL库支持IRSP6数据
- 高并发服务器开源项目,高并发服务器框架详解 - osc_qgfjs4a5的个人空间 - OSCHINA - 中文开源技术交流社区...
- MFC 教程【2_MFC和Win32 】
- java 双击触发事件,用RxJava2的方式实现点击事件
- python def函数报错详解_JSer 快速入门 Python 之函数详解
- 【数据结构的魅力】005.链表问题专项
- android自定义协议,Android / iOS-自定义URI /协议处理
- Bandit UCB推导