博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【加密算法】MD5
阅读量:5282 次
发布时间:2019-06-14

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

一、简介

MD5的全称是Message-Digest Algorithm 5(信息摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当可观,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用不可逆加密算法加密的。近年来,随着计算机性能的飞速改善,加密速度不再成为限制这种加密技术发展的桎梏,因而消息摘要算法应用的领域不断增加。

二、实现

/// /// MD5加密类/// public class Md5Helper{    ///     /// MD5加密    /// 加权:无    /// 位数:32位    ///     /// 明文    /// 
返回32位的密文
public static string Encrypt(string plaintext) { return Encrypt(plaintext, true, null); } /// /// MD5加密 /// 加权:有 /// 位数:32位 /// /// 明文 /// 随机字符串 ///
返回32位的密文
public static string Encrypt(string plaintext, string salt) { return Encrypt(plaintext, true, salt); } /// /// MD5加密 /// 加权:无 /// 位数:32位或16位 /// /// 明文 /// 是 返回32位,否返回16位 ///
public static string Encrypt(string plaintext, bool isThirtyTwo) { return Encrypt(plaintext, isThirtyTwo, null); } /// /// MD5加密 /// 加权:有 /// 位数:32位或16位 /// /// /// /// ///
public static string Encrypt(string plaintext, bool isThirtyTwo, string salt) { if (String.IsNullOrEmpty(plaintext)) { throw new ArgumentNullException("明文不能为空"); } if (!String.IsNullOrEmpty(salt)) { plaintext = plaintext + salt; //加权是为了增加密文的复杂性。 这里的加权位置可按照自己的需要任意调整 } MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bytResult = md5.ComputeHash(Encoding.UTF8.GetBytes(plaintext)); md5.Clear(); string result = String.Empty; if (isThirtyTwo) { result = BitConverter.ToString(bytResult); } else { result = BitConverter.ToString(bytResult, 4, 8); } return result.Replace("-", ""); }}

转载于:https://www.cnblogs.com/weiweixiang/p/10102911.html

你可能感兴趣的文章
C#测试题若干,都是基础阿
查看>>
NetWork——关于TCP协议的三次握手和四次挥手
查看>>
An easy problem
查看>>
MauiMETA工具的使用(一)
查看>>
LeetCode: Anagrams 解题报告
查看>>
用cookie登录慕课网络教学中心刷评论
查看>>
Qt 中获取本机IP地址
查看>>
基本数据类型(int, bool, str)
查看>>
070102_赌博设计:概率的基本概念,古典概型
查看>>
IT人生的价值和意义 感觉真的有了
查看>>
Linux命令之df
查看>>
JS DOM对象
查看>>
python正则表达式
查看>>
OGR – Merging Multiple SHP files
查看>>
创业公司该不该被收购?(转)
查看>>
sqlserver 行转列、列转行[转]
查看>>
【IScroll深入学习】解决IScroll疑难杂症
查看>>
python 数据类型
查看>>
108-PHP类成员protected和private成员属性不能被查看数值
查看>>
ajax post data 获取不到数据,注意contentType
查看>>