博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
加密工具类
阅读量:7062 次
发布时间:2019-06-28

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

public class Encrypt    {        ///         /// MD5加密方法        ///         /// 传入一个字符串        /// 
public static string GetMd5(string str, bool toLower = true) { if (String.IsNullOrWhiteSpace(str)) { Logger.Info("MD5参数空"); return string.Empty; } MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); string a = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(str))); a = a.Replace("-", ""); return toLower ? a.ToLower() : a; } /// /// SHA1 加密,返回大写字符串 /// /// 需要加密字符串 /// 指定加密编码 ///
返回40位大写字符串
public static string SHA1(string content, Encoding encode) { try { SHA1 sha1 = new SHA1CryptoServiceProvider(); byte[] bytes_in = encode.GetBytes(content); byte[] bytes_out = sha1.ComputeHash(bytes_in); sha1.Dispose(); string result = BitConverter.ToString(bytes_out); result = result.Replace("-", ""); return result; } catch (Exception ex) { throw new Exception("SHA1加密出错:" + ex.Message); } } /// /// des加密 /// /// 需要加密的报文 /// 秘钥 ///
public static string DesEncrypt(string datastr, string keystr) { DESCryptoServiceProvider desc = new DESCryptoServiceProvider(); byte[] key = System.Text.Encoding.ASCII.GetBytes(keystr); byte[] data = System.Text.Encoding.Unicode.GetBytes(datastr); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, desc.CreateEncryptor(key, key), CryptoStreamMode.Write); cs.Write(data, 0, data.Length); cs.FlushFinalBlock(); return System.Convert.ToBase64String(ms.ToArray()); } /// /// 8个bit位,是DES算法的初始化 /// private static readonly byte[] Keys = new byte[] { 0x12, 0x34, 0x56, 120, 0x90, 0xab, 0xcd, 0xef }; /// /// des解密 /// /// 需要解密的报文 /// 秘钥 ///
public static string DesDecrypt(string decryptString, string decryptKey) { byte[] result = null; try { decryptKey = decryptKey.Length > 8 ? decryptKey.Substring(0, 8) : decryptKey; decryptKey = decryptKey.PadRight(8, ' '); byte[] bytes = Encoding.UTF8.GetBytes(decryptKey); byte[] keys = Keys; //判断是否是base64的字符串 if (Regular.IsBase64(decryptString) == false) //转换异常出现位置1,自己处理 return string.Empty; byte[] buffer = Convert.FromBase64String(decryptString); DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); MemoryStream stream = new MemoryStream(); ICryptoTransform tran = provider.CreateDecryptor(bytes, keys); CryptoStream stream2 = new CryptoStream(stream, tran, CryptoStreamMode.Write); stream2.Write(buffer, 0, buffer.Length); // stream2.FlushFinalBlock(); //不处理异常情况 try { stream2.FlushFinalBlock(); //转换异常出现位置2,使用try/catch 处理 } catch { return string.Empty; } result = stream.ToArray(); stream.Dispose(); return Encoding.UTF8.GetString(result); } catch (Exception ex) { Logger.Error(ex.Message); return string.Empty; } } /// /// Base64加密 /// /// 加密采用的编码方式 /// 待加密的明文 ///
public static string Base64Encode(Encoding encodeType, string source) { string encode = string.Empty; byte[] bytes = encodeType.GetBytes(source); try { encode = Convert.ToBase64String(bytes); } catch { encode = source; } return encode; } /// /// Base64解密 /// /// 解密采用的编码方式,注意和加密时采用的方式一致 /// 待解密的密文 ///
解密后的字符串
public static string Base64Decode(Encoding encodeType, string result) { string decode = string.Empty; byte[] bytes = Convert.FromBase64String(result); try { decode = encodeType.GetString(bytes); } catch { decode = result; } return decode; } }

 

转载于:https://www.cnblogs.com/TimLiuDream/p/9897972.html

你可能感兴趣的文章
《我们应当怎样做需求分析》读书笔记
查看>>
JpetStore目录文件关系分析
查看>>
《高性能javascript》学习总结
查看>>
sql ROW_NUMBER() 排序函数
查看>>
用忠诚、时间、奉献来换取一家公司的地位、头衔,以及待遇
查看>>
Sonar Qube QA
查看>>
常见的BLE芯片
查看>>
vim插件安装
查看>>
64位CentOS 6.4下安装wine(32位)
查看>>
hdu5037 Frog (贪心)
查看>>
acdream1421 TV Show (枚举)
查看>>
[日常] C语言中的字符数组和字符串
查看>>
MySQL-多条件拼接语句
查看>>
C++不让程序一闪而过
查看>>
Unity3D 应用程序退出调用OnDestroy测试
查看>>
Unity脚本在层级面板中的执行顺序测试1
查看>>
获取checkbox的值
查看>>
spring mvc的@Transactional注解
查看>>
关于Spring事务<tx:annotation-driven/>的理解(Controller可以使用@Transactional)
查看>>
docker 部署mvc项目 <四>
查看>>