【公共类库】加密解密

 public static class MyEncryption{#region Md5加密/// <summary>/// 使用MD5加密/// </summary>/// <param name="str">需要加密的数据。</param>/// <param name="kind">加密类型:1-普通加密;2-密码加密</param>/// <returns></returns>public static string EncryptMD5(this string source, int kind = 2){string str = "";byte[] data = Encoding.Unicode.GetBytes(source.ToCharArray());try{if (kind == 1)//1代表加密Byte[]数组{byte[] result = MakeMD5(data);string sResut = Encoding.Unicode.GetString(result);str = sResut;}else{//作为密码方式加密str = FormsAuthentication.HashPasswordForStoringInConfigFile(source, "MD5");}return str;}catch (Exception e){LogException.WriteLog(e, "加密出错");return null;}}#endregion#region base64加密解密/// <summary>/// 转换为Base64编码字符/// </summary>/// <param name="source"></param>/// <returns></returns>public static string EncryptBase64(this string source){if (string.IsNullOrEmpty(source)){LogException.WriteLog(null, "");return null;}else{try{//将字符串转换成UTF-8编码的字节数组byte[] buffer = Encoding.UTF8.GetBytes(source);//将UTF-8编码的字节数组转换成Base64编码的字符串string result = Convert.ToBase64String(buffer);return result;}catch (Exception e){LogException.WriteLog(e, "加密出错");return null;}}}/// <summary>/// 将Base64编码字符转换为字符/// </summary>/// <param name="result"></param>/// <returns></returns>public static string DecryptBase64(this string result){if (string.IsNullOrEmpty(result)){LogException.WriteLog(null, "加密出错");return null;}else{try{//将字符串转换成Base64编码的字节数组byte[] buffer = Convert.FromBase64String(result);//将字节数组转换成UTF-8编码的字符串string source = Encoding.UTF8.GetString(buffer);return source;}catch (Exception e){LogException.WriteLog(e, "加密出错");return null;}}}#endregion#region DES加密解密/// <summary>/// DES加密/// </summary>/// <param name="source">加密数据</param>/// <param name="key">8位字符的密钥字符串</param>/// <param name="iv">8位字符的初始化向量字符串</param>/// <returns></returns>public static string EncryptDES(this string source, string key, string iv){byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(key);byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(iv);try{DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();int i = cryptoProvider.KeySize;MemoryStream ms = new MemoryStream();CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);StreamWriter sw = new StreamWriter(cst);sw.Write(source);sw.Flush();cst.FlushFinalBlock();sw.Flush();return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);}catch (Exception e){LogException.WriteLog(e, "加密出错");return null;}}/// <summary>/// DES解密/// </summary>/// <param name="result">解密数据</param>/// <param name="key">8位字符的密钥字符串(需要和加密时相同)</param>/// <param name="iv">8位字符的初始化向量字符串(需要和加密时相同)</param>/// <returns></returns>public static string DecryptDES(this string result, string key, string iv){byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(key);byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(iv);byte[] byEnc;try{byEnc = Convert.FromBase64String(result);DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();MemoryStream ms = new MemoryStream(byEnc);CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);StreamReader sr = new StreamReader(cst);return sr.ReadToEnd();}catch (Exception e){LogException.WriteLog(e, "加密出错");return null;}}/// <summary>/// DES加密/// </summary>/// <param name="source">解密数据</param>/// <param name="iv">8位字符的初始化向量字符串</param>/// <returns></returns>public static string EncryptDES(this string source, string iv){return EncryptDES(source, "MHAFU365", iv);}/// <summary>/// DES解密/// </summary>/// <param name="result">解密数据</param>/// <param name="iv">8位字符的初始化向量字符串</param>/// <returns></returns>public static string DecryptDES(this string result, string iv){return DecryptDES(result, "MHAFU365", iv);}#endregion#region TripleDESC加密解密#region 字符/// <summary> /// 使用给定密钥加密 /// </summary> /// <param name="source">原始文字</param> /// <param name="key">密钥</param> /// <param name="encoding">字符编码方案</param> /// <returns>密文</returns> public static string EncryptTripleDESC(this string source, string key){byte[] buff = System.Text.Encoding.Default.GetBytes(source);byte[] kb = System.Text.Encoding.Default.GetBytes(key);return Convert.ToBase64String(EncryptTripleDESC(buff, kb));}/// <summary> /// 使用给定密钥解密 /// </summary> /// <param name="result">密文</param> /// <param name="key">密钥</param> /// <param name="encoding">字符编码方案</param> /// <returns>明文</returns> public static string DecryptTripleDESC(this string result, string key, Encoding encoding){byte[] buff = Convert.FromBase64String(result);byte[] kb = System.Text.Encoding.Default.GetBytes(key);return encoding.GetString(DecryptTripleDESC(buff, kb));}/// <summary> /// 使用缺省密钥字符串加密 /// </summary> /// <param name="source">明文</param> /// <returns>密文</returns> public static string EncryptTripleDESC(this string source){return EncryptTripleDESC(source, "HAFU365");}/// <summary> /// 使用缺省密钥解密 /// </summary> /// <param name="result">密文</param> /// <returns>明文</returns> public static string DecryptTripleDESC(this string result){return DecryptTripleDESC(result, "HAFU365", System.Text.Encoding.Default);}/// <summary> /// 使用给定密钥加密 /// </summary> /// <param name="source">原始数据</param> /// <returns>密文</returns> public static byte[] EncryptTripleDESC(this byte[] source){byte[] key = System.Text.Encoding.Default.GetBytes("HAFU@365");return EncryptTripleDESC(source, key);}/// <summary> /// 使用缺省密钥解密数据 /// </summary> /// <param name="result">密文</param> /// <returns>明文</returns> public static byte[] DecryptTripleDESC(this byte[] result){byte[] key = System.Text.Encoding.Default.GetBytes("HAFU@365");return DecryptTripleDESC(result, key);}#endregion#region 字节数组/// <summary> /// 使用给定密钥加密 /// </summary> /// <param name="source">明文</param> /// <param name="key">密钥</param> /// <returns>密文</returns> public static byte[] EncryptTripleDESC(this byte[] source, byte[] key){try{TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();des.Key = MakeMD5(key);des.Mode = CipherMode.ECB;return des.CreateEncryptor().TransformFinalBlock(source, 0, source.Length);}catch (Exception e){LogException.WriteLog(e, "加密出错");return null;}}/// <summary> /// 使用给定密钥解密数据 /// </summary> /// <param name="result">密文</param> /// <param name="key">密钥</param> /// <returns>明文</returns> public static byte[] DecryptTripleDESC(this byte[] result, byte[] key){try{TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();des.Key = MakeMD5(key);des.Mode = CipherMode.ECB;return des.CreateDecryptor().TransformFinalBlock(result, 0, result.Length);}catch (Exception e){LogException.WriteLog(e, "加密出错");return null;}}#endregion#endregion#region 生成MD5摘要/// <summary> /// 生成MD5摘要 /// </summary> /// <param name="original">数据源</param> /// <returns>摘要</returns> private static byte[] MakeMD5(byte[] original){MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();byte[] keyhash = hashmd5.ComputeHash(original);hashmd5 = null;return keyhash;}#endregion

  

转载于:https://www.cnblogs.com/luanyizixuan/articles/5263354.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用JOTM实现分布式事务管理(多数据源)

使用spring和hibernate可以很方便的实现一个数据源的事务管理,但是如果需要同时对多个数据源进行事务控制,并且不想使用重量级容器提供的机制的话,可以使用JOTM达到目的. JOTM的配置十分简单,spring已经内置了对JOTM的支持,一.<bean id"jotm" class"org.spri…

【机器学习】——《机器学习实战》面试复习

目录 一、机器学习概念 二、机器学习步骤 三、有监督学习 1、k-近邻算法 核心思想 实例&#xff1a;手写数字的识别 优缺点&#xff1a; 2、决策树 相关概念 核心思想 一些小技巧 优缺点 3、神经网络 4、SVM——支持向量机 核心思想 SVM和SVR的区别 ​ 优缺点…

一键分享代码

文章出处&#xff1a;http://share.baidu.com/code/advance 一、概述 百度分享代码已升级到2.0&#xff0c;本页将介绍新版百度分享的安装配置方法&#xff0c;请点击左侧列表查看相关章节。 二、代码结构 分享代码可以分为三个部分&#xff1a;HTML、设置和js加载&#xff0c;…

ubuntu安装LDAP

参考文献&#xff1a; https://help.ubuntu.com/12.04/serverguide/openldap-server.html&#xff08;最主要的&#xff09; http://www.linuxidc.com/Linux/2011-08/40020.htm http://blog.chinaunix.net/uid-24276740-id-3360306.html 前言 在网上搜索ldap的安装配置&#xf…

58.贪心算法练习:  最小新整数

总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个十进制正整数n(0 < n < 1000000000)&#xff0c;每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0< m)&#xff0c;求生成的新整数最小为多少&#xff1f;例如: n 9128456, k 2, 则生成的新整数最小…

ABB机器人之LOADDATA

ABB机器人之LOADDATA loaddata是用来描述连接到机器人机械接口的负载&#xff08;机器人的安装法兰&#xff09;。loaddata数据通常定义有效载荷或负荷&#xff08;通过指令gripload设置机器人抓手负载 或mechunitload指令设置变位机负载。loaddata通常也作为tooldata的一部分&…

【深度学习】——性能指标(ROC、MAP、AUC等)

目录 一、分类任务性能指标 1、混淆矩阵 2、精确度ACCURACY 正确数/总数 3、查全率&#xff08;RECALL&#xff09;——真正正样本中预测正确的比例 4、查准率&#xff08;precision&#xff09;——预测为正样本中的预测正确的比例 5、F-score——对查准率和查全率进行结…

【深度学习】——过拟合的处理方法

目录 一、什么是过拟合&#xff1f;&#xff08;overfitting&#xff09; 二、过拟合的表现&#xff08;判定方法&#xff09; 训练集、测试集、验证集区别 测试集与验证集的区别 三、产生过拟合的原因 1、样本方面 2、模型方面 四、避免过拟合的方法 1、样本方面 1&…

ASP.NET页面的字符编码设置

在用ASP.NET写网上支付的接口程序时&#xff0c;遇到一个奇怪问题&#xff0c;通过表单提交过去的中文全是乱码&#xff0c;英文正常。而用asp程序进行测试&#xff0c;可以正常提交中文&#xff0c;asp页面中有这样的HTML代码&#xff1a; <meta http-equiv"Content-T…

帝人製机--适合的机遇--遇到恰到好处的产品--工业机器人减速机造就一个百年企业

持之以恒是成功的必要条件&#xff0c;但是也要有恰当的土壤。日本Nabtesco(纳博特斯克)旧名&#xff1a;帝人製机(TEIJINSEIKI)高性能日本RV减速机纳博特斯克(Nabtesco)公司是一家居世界领先地位的精密传动控制系统及组件製造商。目前全世界已有超过两百万件由Nabtesco製造的精…

Python个人项目--豆瓣图书个性化推荐

项目名称: 豆瓣图书个性化推荐 需求简述&#xff1a;从给定的豆瓣用户名中&#xff0c;获取该用户所有豆瓣好友列表&#xff0c;从豆瓣好友中找出他们读过的且评分5星的图书&#xff0c;如果同一本书被不同的好友评5星&#xff0c;评分人数越多推荐度越高。 输入&#xff1a;豆…

#define宏定义形式的函数导致的bug

定义了一个宏定义形式的"函数": #define SUM8(YY)\ {\ int Y YY>>2;\ ...\ } 然后使用的时候&#xff0c;传入了一个同名的变量Y: int Y Ywin[x]; SUM8(Y) 本意是想展开成int Y Ywin[x]>>2; 但实际上#define只是把参数名(YY)替换&#xff0c;与函数…

【深度学习】——BN层(batch normalization)

目录 一、“Internal Covariate Shift”问题 二、BatchNorm的本质思想 两个参数r和β的意义——精髓所在 三、训练阶段如何做BatchNorm 四、BatchNorm的推理(Inference)过程 五、BatchNorm的好处 一般使用在卷积层后、激活层前 Batch Normalization作为最近一年来DL的重要…

打印池

餐饮行业&#xff0c;打印池是必要的部件。 实现原理&#xff1a;每一台打印机都有自己的任务队列和处理任务队列的线程。 unit untPrintTask; interface uses System.SysUtils, System.Classes, Datasnap.DBClient, frxclass, System.Generics.Collections; type TBillContent…

JAXB vs XStream

2019独角兽企业重金招聘Python工程师标准>>> JAXB vs XStream 博客分类&#xff1a; java JAXB vs XStream 这两东东本质上是有差别的&#xff0c;JAXB称为OX binding工具&#xff0c;XStream应该算序列化工具&#xff0c;但OX binding工具也会marshall和unmarsha…

ABB 机器人 DRVIO_1通信报警

ABB 机器人DRVIO_1通信报警 2014.06.13 ABB1600弧焊机器人&#xff0c;从A地搬运到B地&#xff0c;到达B地后&#xff0c;机器人上电&#xff0c;报DRVIO_1通信故障&#xff0c;机器人进入故障停止模式。 DRVIO_1为LOCAL_GENERIC类型的ABB内部LOCAL总线类型的单元实例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目录结构 &#xff1a; EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…

ABB 机器人 添加多任务

首先&#xff0c;需要启用多任务选项的控制器。 要做到这一点&#xff0c;创建一个新的机器人控制器RobotStudio站 - >选择机器人&#xff08;控制器菜单&#xff09; - >.................. - >系统生成器 - >选择控制器 - >修改...下一页 - >下一步 - >…

poj2594(二分图,最小路径覆盖变形)

Treasure ExplorationTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 7611 Accepted: 3126Description Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? …

【机器视觉】——相机镜头篇

目录 一、相关概念 1、相机 2、镜头 二、相关参数 1、相机参数 1)芯片尺寸