C# 实现MD5加密

这篇具有很好参考价值的文章主要介绍了C# 实现MD5加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C#MD5加密

日常程序开发中,涉及到敏感数据内容,通常会采取加密处理以保证数据安全,本篇文章讲述了在C#中使用MD5方法加密数据


MD5介绍

MD5的全称是message-digest algorithm 5,MD5算法属于hash算法的一类,对消息进行运算,产生一个128位的消息摘要(32位数字字母),并且加密不可逆,相同数据的加密结果一定相同。

特点

  • 任意长度的数据,算出的MD5值都是固定的长度
  • 计算容易
  • 无论对原来的数据进行多细小的改动,所得到的MD5都有很大差别
  • 弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据是非常困难的。
  • 强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。

MD5解密

MD5数据是不可逆的,网上的破解工具都基于大数据解密,将大量数据的MD5值先保存起来,对于一些简单的数据,是很容易匹配到的。

使用场景

  • 用户的密码,身份信息,等等一些不愿意展示明文的数据
  • 数字签名
  • 检验双方数据文件是否一致,防篡改

C#中实现MD5加密

  1. C#中提供 MD5CryptoServiceProviderMD5 两个类型提供对MD5的加密操作,其中 MD5CryptoServiceProviderMD5 的派生类。
  2. 在.NET6中 MD5CryptoServiceProvider 会提示已过时,在使用的时候,以上两个类都可以去使用,但在.NET6及以上版本中会提示过时,因此建议使用 MD5 来操作。

C#代码实现

  1. MD5CryptoServiceProvider实例化,并对数据进行加密
    string Str = "要加密的字符串";
    var md5 = new MD5CryptoServiceProvider();//实例化
    //将要加密的字符串转换成字节数组
    byte[] strbt = Encoding.UTF8.GetBytes(Str)
    //对转换后的字节进行MD5加密
    byte[] result = md5.ComputeHash(strbt);

  1. MD5实例化,并对数据进行加密
    string Str = "要加密的字符串";
    MD5 md5 = MD5.Create();//实例化
    //将要加密的字符串转换成字节数组
    byte[] strbt = Encoding.UTF8.GetBytes(Str)
    //对转换后的字节进行MD5加密
    byte[] result = md5.ComputeHash(strbt);
  1. 上面代码中。两个类的使用方法基本一致,result为加密后产生的字节数组,长度为16
  2. 加密后将字节转换为32位数字和字母组成的字符,这里也是有两种方法
  • BitConverter方法,此方法返回的字符串为16组,以 - 分割的,每组两位字符,如需要去除可以使用Replace去除
  string StrResult = BitConverter.ToString(result);
  StrResult = StrResult.Replace("-", "");
  • 循环字节数组转成字符串,其中ToString的参数中,X大写表示转换的字符也是大写,反之则为小写
string StrResult = "";
for (int i = 0; i < result.Length; i++)
{
  StrResult = StrResult + result[i].ToString("X2");
}
  • 通过上面方法,最终生成32位字符串。
  1. 实际使用中有时会有16位和32位区分,实际16位是由32位,去除前后8位后所得到的16位字符串,其中BitConverter.ToString(result,4,12);可以直接返回16位的值
  2. 上面方法主要以字符串为例,进行加密的演示,在实际中,文件、图片等其他数据也都可以转换成字节数组进行加密。

以上是C#实现MD5加密的全部内容,针对该方法已经整理成完整的帮助类,项目已上传至Gitee,可以直接下载使用
地址 :https://gitee.com/yang-yong-666/csharp
类文件:YYEnAndDecryption.MD5Decryption.cs


个人交流QQ:1695690324
原创不易,转载请注明出处
博客园:https://www.cnblogs.com/yangyongdashen-S/
CSDN:https://blog.csdn.net/weixin_44312699?spm=1010.2135.3001.5343
Gitee:https://gitee.com/yang-yong-666
公众号:yi人夕岸文章来源地址https://www.toymoban.com/news/detail-711487.html

到了这里,关于C# 实现MD5加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 实现 MD5 加密算法

    1.1 MD5 算法介绍 MD5 消息摘要算法,英文:MD5 Message-Digest Algorithm ,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。 MD5 是单向加密不可逆的,也就是常说的非对称加密,常用于用户密码的加密,这样即使密

    2024年02月09日
    浏览(54)
  • 微信小程序使用CryptoJS加密PassWord(MD5)

    背景及环境: 微信小程序登录页面,需要加密登录密码发送给后端,使用 MD5 来加密密码 开发工具:微信开发者工具 npm安装CryptoJS 查看有哪些crypto的包 npm search crypto 找到自己需要的包安装 npm install crypto-js 构建 npm 使用微信开发者工具构建 npm 解决警告 出现警告报错,打开

    2024年02月04日
    浏览(51)
  • Groovy 基于Groovy实现MD5加密

    groovy 3.0.7 说明:如果在JAVA中运行,则需要修改 为 === 提示文字过少,占位行 === 提示文字过少,占位行

    2024年02月06日
    浏览(64)
  • JavaScript实现MD5加密的6种方式

    关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。 在本案例中 可以看到MD5共有6种加密方法: 1, hex_md5(value) 2, b64_md5(value) 3, str_md5(value) 4, hex_hmac_md5(key, data) 5, b64_hmac_md5(key, data) 6, str_hmac_md5(key, data)   测试

    2024年02月05日
    浏览(55)
  • JavaScript实现MD5 加密的6中方式

      关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件。 在本案例中 可以看到MD5共有6种加密方法: 1, hex_md5(value) 2, b64_md5(value) 3, str_md5(value) 4, hex_hmac_md5(key, data) 5, b64_hmac_md5(key, data) 6, str_hmac_md5(key, data) 测试

    2024年02月14日
    浏览(47)
  • SpringBoot实现Md5对数据库数据加密

            因为开学等各种原因,导致更新的速度越来越慢,当然在此期间也进行了一些其他技术的学习,今天给大家带来的就是我们的通过MD5进行数据库加密。         MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要

    2024年02月09日
    浏览(51)
  • 小程序,h5,移动端处理md5加密接口,请求数据加密方式AES-128-ECB

    1.AES-128-ECB 表示使用AES(Advanced Encryption Standard)算法,密钥长度为128位,工作模式为ECB(Electronic Codebook)的一种对称加密方式。 其中: AES是一种常用的对称加密算法,被广泛地应用于各种信息安全场景中。 128表示密钥长度为128位(16字节)。AES支持的密钥长度还有192位和256位。 ECB代表电

    2024年03月28日
    浏览(48)
  • JMeter处理接口签名之BeanShell实现MD5加密

    项目A需要给项目B提供一个接口,这个接口加密了,现在需要测试这个接口,需要怎么编写脚本呢?实现接口签名的方式有两种: BeanShell实现MD5加密和 函数助手实现MD5加密, 之前已经分享过了函数助手实现MD5加密 ,今天就来分享下BeanShell实现MD5加密。 一、接口信息 POST /a

    2024年02月14日
    浏览(51)
  • Android下实现字符串或文件的MD5加密

    MD5-信息摘要算法简单介绍 MD5 (Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。 计算出来的MD5值是有可能重复的,但是概率很低。 加密过程几乎不可逆,除非维护一个庞大的Key-Val

    2024年02月15日
    浏览(47)
  • uniapp使用md5加密 js使用md5加密

    文章的初衷 最近项目中使用了md5加密,为了方便还不明白怎么使用的朋友参考查阅,当然也为了方便博主再次使用所写 md5加密说明 可在不同平台使用 因为使用方法是js方法去调用的所以不局限于某个平台 我这里使用的方式是登录的时候进行加密,具体其他的使用方式,朋友们自

    2024年02月07日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包