DES加密与解密MD5加密帮助类
public class TrialHelper
{
//默认密钥向量
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
{
if (string.IsNullOrEmpty(encryptKey) || encryptKey.Length < )
{
encryptKey = "winform01";
} byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(, ));
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, , 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
{
if (string.IsNullOrEmpty(decryptKey) || decryptKey.Length < )
{
decryptKey = "winform01";
}
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(, ));
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, , inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
} /// <summary>
/// MD5数据加密
/// </summary>
/// <param name="sDataIn">加密字段</param>
/// <returns>加密后的字符串</returns>
public static string GetMD5( string sDataIn )
{
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bytValue, bytHash;
bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);
bytHash = md5.ComputeHash(bytValue);
md5.Clear();
string sTemp = "";
for (int i = ; i < bytHash.Length; i++)
{
sTemp += bytHash[i].ToString("x").PadLeft(, '');
}
return sTemp;
}
}
调用:
//获取登录信息
loginRecord.Name = tbName.Text.Trim();
loginRecord.MD5Pwd = TrialHelper.GetMD5(tbPwd.Password); //保存到数据库MD5加密方式
loginRecord.Pwd = TrialHelper.EncryptDES(tbPwd.Password);//记住密码des加密方式,保存到本地
DES加密与解密MD5加密帮助类的更多相关文章
- golang md5加密和python md5加密比较
python md5加密和golang md5加密各有不同,记录于此做备忘 Python 方法 md5 import base64 import hashlib def get_md5_data(bo ...
- DES加密解密 MD5加密解密
#region MD5 加密 /// <summary> /// MD5加密静态方法 /// </summary> /// <param name="Encry ...
- iOS,一行代码进行RSA、DES 、AES、MD5加密、解密
本文为投稿文章,作者:Flying_Einstein(简书) 加密的Demo,欢迎下载 JAVA端的加密解密,读者可以看我同事的这篇文章:http://www.jianshu.com/p/98569e ...
- [DEncrypt] Encrypt--加密/解密/MD5加密 (转载)
点击下载 Encrypt.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.Encrypt加密2.Encrypt解密3.Encrypt MD5加密看下面代码吧 /// <summar ...
- 加密与解密md5 3des
/// <summary> /// MD5加密 /// </summary> /// <param name="s"></param> ...
- python接口自动化测试二十七:加密与解密MD5、base64
# MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl ...
- AES加密解密&&SHA1、SHA加密&&MD5加密
AES加密解密 SHA1.SHA加密 MD5加密 二话不说立即附上代码: package com.luo.util; import java.io.UnsupportedEncodingExcepti ...
- js MD5加密与 java MD5加密不一致
因为该项目会部署到多台机器,所以需要用字符生成唯一的MD5,但是js生成的MD5和java生成的MD5不一致.经过博主查阅资料发现java生成MD5用的是utf-8的编码,而且js用的是2进制.那我就 ...
- AES Java加密 C#解密 (128-ECB加密模式)
在项目中遇到这么一个问题: java端需要把一些数据AES加密后传给C#端,找了好多资料,算是解决了,分享一下: import sun.misc.BASE64Decoder; import sun.m ...
随机推荐
- ATM:模拟实现一个ATM + 购物商城程序
额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 ATM记录操作日志 提供管理接 ...
- PHP定时任务Crontab结合CLI模式详解
从版本 4.3.0 开始,PHP 提供了一种新类型的 CLI SAPI(Server Application Programming Interface,服务端应用编程端口)支持,名为 CLI,意为 ...
- 如何正确且成功破解跨平台数据库管理工具DbVisualizer?(图文详解)
前期博客 基于JDBC的跨平台数据库管理工具DbVisualizer安装步骤(图文详解)(博主推荐) 上图,所示,说明这个还只是免费版而已,没又破解为Pro版本. 接下来,就是带领大家如何正确且成功破 ...
- 【phonegap】用本地浏览器打开网页
<a id="ssl2" href="#" onclick="openLocalExplorer()">请点击跳到页面</ ...
- java成神之——集合框架之Maps,Hashtable
集合 Maps HashMap 创建和初始化map 遍历方式 LinkedHashMap WeakHashMap TreeMap 线程锁 Hashtable 结语 集合 Maps HashMap Ma ...
- 02-25 类成员的访问权限--internal
C#中还有一种可访问性,就是由关键字internal所确定的“内部”访问性: internal有点像public,外界类也可以直接访问声明为internal的类或类的成员,但这只局限于同一个程序集内部 ...
- QR 码的位置检测符
QR码的位置检测符由三个同心正方形叠加而成.分别为: 7*7 modules的黑色正方形: 5*5 modules的白色正方形 : 3*3modules的黑色正方形. 三个用于定位检测的“回”形符号应 ...
- 单元测试简介和Junit的使用介绍
单元测试简介和Junit的使用介绍 Junit是Java开发中用来支持单元测试的一个软件,这里对它的基本情况.使用方法等做简单的介绍. 提纲 1.软件测试 2.单元测试概述 3.单元测试的具体做法 4 ...
- Apache Derby数据库系统使用方法
Apache Derby数据库系统使用方法 最近由于项目要求,试用了一下Apache Derby数据库,这里对了解到的内容做一个记录. Apache Derby是一个开源的关系型数据库管理系统,用Ja ...
- Ant之build.xml详解---可用
Ant的概念 :在Eclipse中使用Ant Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率. Ant和make命令很像. ...