Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >c# MD5加密

c# MD5加密

作者头像
全栈程序员站长
发布于 2022-09-14 07:00:48
发布于 2022-09-14 07:00:48
8790
举报

大家好,又见面了,我是你们的朋友全栈君。

using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; /****************************** * 概要:MD5加密 * 设计者:DuanXuWen * 时间:20180309 * 版本:0.1 * 修改者: * 修改时间: * ***************************/

namespace Common { public class EncrypHelper { /// <summary> ///静态无参构造 /// </summary> static EncrypHelper() { //默认的密钥 SecretKey = “HelloWorld..!!”; }

/// <summary> /// 使用SHA256加密字符串 /// </summary> /// <param name=”Source”></param> /// <returns></returns> public static string EncrypToSHA(string Source) { SHA256Managed sha256 = new SHA256Managed(); byte[] s = UTF8Encoding.UTF8.GetBytes(Source); byte[] t = sha256.ComputeHash(s); return Convert.ToBase64String(t); }

/// <summary> /// MD5加密(32位) /// </summary> /// <param name=”str”>加密字符</param> /// <returns></returns> public static string encrypt(string str) { string cl = str; string pwd = “”; MD5 md5 = MD5.Create(); byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl)); for (int i = 0; i < s.Length; i++) { pwd = pwd + s[i].ToString(“X”); } return pwd; }

/// <summary> /// 缺省的密钥 /// </summary> public static readonly string SecretKey;

/// <summary> /// 使用缺省密钥字符串加密string /// </summary> /// <param name=”original”>明文</param> /// <returns>密文</returns> public static string Encrypt(string original) { return Encrypt(original, SecretKey); }

/// <summary> /// 使用缺省密钥字符串解密string /// </summary> /// <param name=”original”>密文</param> /// <returns>明文</returns> public static string Decrypt(string original) { return Decrypt(original, SecretKey, System.Text.Encoding.Default); }

/// <summary> /// 使用给定密钥字符串加密string /// </summary> /// <param name=”original”>原始文字</param> /// <param name=”key”>密钥</param> /// <returns>密文</returns> public static string Encrypt(string original, string key) { byte[] buff = System.Text.Encoding.Default.GetBytes(original); byte[] kb = System.Text.Encoding.Default.GetBytes(key); return Convert.ToBase64String(Encrypt(buff, kb)); }

/// <summary> /// 使用给定密钥字符串解密string /// </summary> /// <param name=”original”>密文</param> /// <param name=”key”>密钥</param> /// <returns>明文</returns> public static string Decrypt(string original, string key) { return Decrypt(original, key, System.Text.Encoding.Default); }

/// <summary> /// 使用给定密钥字符串解密string,返回指定编码方式明文 /// </summary> /// <param name=”encrypted”>密文</param> /// <param name=”key”>密钥</param> /// <param name=”encoding”>字符编码方案</param> /// <returns>明文</returns> public static string Decrypt(string encrypted, string key, Encoding encoding) { byte[] buff = Convert.FromBase64String(encrypted); byte[] kb = System.Text.Encoding.Default.GetBytes(key); return encoding.GetString(Decrypt(buff, kb)); }

/// <summary> /// 生成MD5摘要 /// </summary> /// <param name=”original”>数据源</param> /// <returns>摘要</returns> public static byte[] MakeMd5(byte[] original) { MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); byte[] keyhash = hashmd5.ComputeHash(original); hashmd5 = null; return keyhash; }

/// <summary> /// 使用给定密钥加密 /// </summary> /// <param name=”original”>明文</param> /// <param name=”key”>密钥</param> /// <returns>密文</returns> public static byte[] Encrypt(byte[] original, byte[] key) { TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); des.Key = MakeMd5(key); des.Mode = CipherMode.ECB; return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length); }

/// <summary> /// 使用给定密钥解密数据 /// </summary> /// <param name=”encrypted”>密文</param> /// <param name=”key”>密钥</param> /// <returns>明文</returns> public static byte[] Decrypt(byte[] encrypted, byte[] key) { TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); des.Key = MakeMd5(key); des.Mode = CipherMode.ECB; return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length); } } }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157562.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C#自定义基于Base64的加密解密类
这个C#类是一个基于Base64的加密和解密类,用户可以可以使用默认的秘钥进行加密、解密,也可以自己设定秘钥进行加密和解密,非常实用
用户7108768
2021/11/02
9230
C#开发中常用的加密解密方法
相信很多人在开发过程中经常会遇到需要对一些重要的信息进行加密处理,今天给大家分享我个人总结的一些加密算法:
用户7053485
2020/03/19
2K0
Md5加密秘钥加密哈希加密
加密通用类: public class EncryptClass { /// <summary> /// 返回MD5加密字符串 /// </summary> /// <param name="EncString"></param> /// <returns></returns> public static string GetMd5String(string EncString)
用户1055830
2018/01/18
6.4K1
Asp.Net 加密解密
#region DES加密解密 /// <summary> /// DES加密 /// </summary> /// <param name="strSource">待加密字串</param> /// <param name="key">32位Key值</param> /// <returns>加密后的字符串</returns> public string DESEncrypt(string strSource) { return DESEncrypt(strSource, DESKey); } public string DESEncrypt(string strSource, byte[] key) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, sa.CreateEncryptor(), CryptoStreamMode.Write); byte[] byt = Encoding.Unicode.GetBytes(strSource); cs.Write(byt, 0, byt.Length); cs.FlushFinalBlock(); cs.Close(); return Convert.ToBase64String(ms.ToArray()); } /// <summary> /// DES解密 /// </summary> /// <param name="strSource">待解密的字串</param> /// <param name="key">32位Key值</param> /// <returns>解密后的字符串</returns> public string DESDecrypt(string strSource) { return DESDecrypt(strSource, DESKey); } public string DESDecrypt(string strSource, byte[] key) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; ICryptoTransform ct = sa.CreateDecryptor(); byte[] byt = Convert.FromBase64String(strSource); MemoryStream ms = new MemoryStream(byt); CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Read); StreamReader sr = new StreamReader(cs, Encoding.Unicode); return sr.ReadToEnd(); }
用户8671053
2021/11/02
2.3K0
C#加解密
加密解密在开发中经常用到,比如登录密码加密解密、消息传输加密解密等。但是很多人只会使用不理解其中的原理,这篇文章就带领大家快速学习加密解密的原理和使用。
喵叔
2020/09/08
1.1K0
DotNet中几种常用的加密算法
彭泽0902
2018/01/04
8040
那些常用的加密算法
MD5加密是最常见的加密方式,因为MD5是不可逆的,所以很多系统的密码都是用MD5加密保存的。
Kiba518
2020/11/26
1.2K0
那些常用的加密算法
一款实用的.NET Core加密解密工具类库
在我们日常开发工作中,为了数据安全问题对数据加密、解密是必不可少的。加密方式有很多种如常见的AES,RSA,MD5,SAH1,SAH256,DES等,这时候假如我们有一个封装的对应加密解密工具类可以直接调用,那这样可以节省不少的开发时间。今天推荐一款实用的.NET Core加密解密工具类库:NETCore.Encrypt。
追逐时光者
2023/11/20
3750
一款实用的.NET Core加密解密工具类库
请看,常见的加密算法及详解都在这里!
加密算法,是现在每个软件项目里必须用到的内容。广泛应用在包括了用户登入、数字签名、数据传输等多个场合。那大家都知道那些呢?今天我把常见的加密算法全部整理在这里,供大家学习参考。
攻城狮的那点事
2019/12/10
1.6K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(62)-EF链接串加密
前言:   这一节提供一个简单的功能,这个功能看似简单,找了一下没找到EF链接数据库串的加密帮助文档,只能自己写了,这样也更加符合自己的加密要求 有时候我们发布程序为了避免程序外的SQL链接串明文暴露,需要进行一些加密手段! 加密主要分几类:对称加密,非对称加密,散列算法(自己百度脑补,这里不再多说) 我这里选择AES 256位的加密,主要加密速度算法快,安全性高,资源消耗低。 公司一直在使用AES加密来加密一些小数据量的数据,比较方法和安全   这是我选择加密AES的理由,当然你可以选择其他有名的加密
用户1149182
2018/01/16
1.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(62)-EF链接串加密
Java 加密工具类 AES , MD5 加密
import javax.crypto.*; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; /** * @author: Jack * 2019-12-03 21:56 */ public class AESUt
一个会写诗的程序员
2019/12/11
1.8K0
接口API中的敏感数据基于AES进行安全加密后返回
由于之前没有相关的经验,所以先在网上搜罗了一阵,这篇博客不错https://www.cnblogs.com/codeon/p/6123863.html给了我一些思路和启发。
翎野君
2023/05/12
1.1K0
接口API中的敏感数据基于AES进行安全加密后返回
周末给女友讲了遍加密算法,没想到...
哈哈哈,其实只是周末看了小舞而已啦,铁铁们没追更的,赶快去补一下这集,特效炸裂。好了,不扯了,进入正题,最近做的项目,涉及到一些加密算法的选择,小羽在这里顺便也给大家做个总结,一起加深对加密的相关认识。
浅羽技术
2020/12/17
5670
周末给女友讲了遍加密算法,没想到...
DES加密ECB模式的Java和C++实现
一、方案详细说明 更新内容: 报文添加加密功能 使用终端: RTU 加密方式: DES加密 DES加密模式: ECB模式 填充方式: zeropadding
ccf19881030
2022/12/01
1.5K0
说一下你常用的加密算法
加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。
Java旅途
2020/07/23
1.9K0
java——加密、解密算法
  1. 对称加密算法: 密钥较短,破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,且对计算机性能要求也没有那么高。 优点: 算法公开、计算量小、加密速度快、加密效率高 缺点: 在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。   2. 非对称加密算法: 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 优点: 安全 缺点: 速度较慢
不愿意做鱼的小鲸鱼
2022/09/26
3.2K0
java——加密、解密算法
C#封装的DES加密、解密类代码
这个C#类封装的DES加密解密,可以使用默认秘钥进行加密、解密,也可以自定义秘钥进行加密、解密,调用简单方便。
用户7108768
2021/11/03
1.4K0
常见的加密算法
前端使用开源CryptoJS (crypto.js) 为 JavaScript加密算法,Github地址(https://github.com/brix/crypto-js)。目前已支持的算法包括:
分母为零
2019/07/04
1.8K0
Java中的加密与安全,你了解多少
  什么是数据安全?假如Bob要给Alice发送一封邮件,在发送邮件的过程中,黑客可能会窃取到邮件的内容,所以我们需要防窃听;黑客也有可能会篡改邮件的内容,所以Alice必须要有能有去识别邮件是否被篡改;最后,黑客也可能假冒Bob给Alice发送邮件,所以Alice还必须有能力识别出伪造的邮件。所以数据安全的几个要点就是:防窃听、防篡改和防伪造。 古代的加密方式:
程序员波特
2024/01/19
2980
Java中的加密与安全,你了解多少
[C#] 常用工具类——加密解密类
using System; using System.Configuration; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.
跟着阿笨一起玩NET
2018/09/19
1.6K0
相关推荐
C#自定义基于Base64的加密解密类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档