首页 > 编程语言 >C#简单的MD5加密

C#简单的MD5加密

时间:2023-11-08 19:24:30浏览次数:33  
标签:十六进制 加密 C# 代码 哈希 字符串 MD5

MD5(Message Digest Algorithm 5)是一种常见的哈希函数,用于将任意长度的输入数据通过计算生成固定长度的128位哈希值。MD5 哈希值通常以十六进制字符串的形式表示,常被用于对密码、消息等敏感信息进行加密或摘要处理。

在编程中,可以使用现有的加密库或工具来对数据进行 MD5 加密。在先前的代码示例中,展示了如何使用 C# 中的 MD5 类和相关的编码方法来计算字符串的 MD5 哈希值,并将其表示为十六进制的字符串。

需要注意的是,尽管 MD5 曾经被广泛应用于加密和校验领域,但由于其存在一些安全性漏洞,不再被建议用于加密密码等安全敏感信息。替代方案包括 SHA-256、SHA-512 等更安全的哈希算法。

 

一.创建生成MD5的方法

代码如下:

/// <summary>
        /// 密码生成Md5
        /// </summary>
        /// <param name="md5"></param>
        /// <returns></returns>
        public string GetMd5(string? md5)
        {
            return  string.Join("", MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(md5)).Select(m => m.ToString("X2")));
        }

  

  代码详细讲解:

  

这段代码的作用是计算给定字符串的 MD5 哈希值。让我来逐步解释一下这段代码:

  1. Encoding.UTF8.GetBytes(md5):首先,使用 UTF-8 编码将字符串 md5 转换成字节数组。

  2. MD5.Create().ComputeHash(...):然后,创建一个 MD5 实例并对该字节数组进行哈希计算,得到对应的 MD5 哈希值的字节数组。

  3. .Select(x => x.ToString("X2")):接下来,使用 LINQ 的 Select 方法将每个字节转换为其对应的十六进制表示,并存储为一个字符串数组。

  4. string.Join("", ...):最后,使用空字符串连接字符串数组中的各个十六进制值,得到最终的 MD5 哈希值的字符串表示。

总的来说,这段代码将输入的字符串经过 MD5 哈希计算后,以十六进制格式输出哈希值的字符串表示。

 

二.代码运用到添加和修改密码,登录用户中

代码如下:

  

list.UserPassword== GetMd5(UserPassword)

  直接在登录前调用Md5方法

  

到此MD5结束

 

标签:十六进制,加密,C#,代码,哈希,字符串,MD5
From: https://www.cnblogs.com/gyp2001/p/17818093.html

相关文章

  • 11月7日css介绍、基本格式、样式、选择器
    目录1.css介绍2.css基本格式3.css的几种引入方式1.行内样式2.内部样式3.外部样式css选择器基本选择器1.元素(标签)选择器2.id选择器3.类选择器通用选择器组合选择器1.后代选择器2.子元素选择器3.相邻兄弟选择器通用兄弟选择器属性选择器分组选择器伪类选择器第一个实例给未访问的链......
  • C语言:用for的循环语句编写九九乘法表
      helloeveryone!我是一个入侵宁夏的河南人Palpitate1(嘿嘿),今年刚上大一,经过这几个月对C语言的学习,对其有了一点点的认识(捂脸~),下面给大家编写一道代码,(for的循环语句)#include<stdio.h>intmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)//再嵌套一个for的循环语句pri......
  • python循环遍历字典: title_content_list.append([key, value])print(ti
    示例示例Python循环遍历字典的方法有以下几种:使用for...in循环:Python循环遍历字典的方法有以下几种:1.使用for...in循环:pythondict={'name':'Tom','age':20,'gender':'male'}#遍历所有的键forkeyindict:print(key)#遍历所有的值forvalueindict.values......
  • [ACTF2020 新生赛]BackupFile 1
    题目环境:好好好,让找源文件是吧?咱们二话不说直接扫它后台使用dirsearch工具扫描网站后台(博主有这个工具的压缩包,可以私聊我领取)pythondirsearch.py-uhttp://0d418151-ebaf-4f26-86b2-5363ed16530f.node4.buuoj.cn:81/探测存活文件不要一惊一乍哦,0B内存这是假的flag.php文......
  • octal number system
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>intbin(intn){ if(n<8) returnn; else returnbin(n/8)*10+n%8;}intmain(){ inti,t; scanf("%d",&t); for(i=1;i<=t;i++) { inta; scanf("%d......
  • 使用PHP实现对称加密和解密过程,真的是太简单了!
    ......
  • cf908(div2)题解(补题)
    纪念这次div2让我上绿名,但还是有点遗憾,差一点就可以过三题超神了比赛链接cf908div2A这题是个骗人题,整个比赛会停下来就是一个人赢够了回合数,那么在谁这停下来就是谁赢了整个比赛,不用管每回合赢得规则。#include<iostream>usingnamespacestd;#include<string>intmain(){......
  • electron+vite笔记
    1、配置国内electron 镜像   .npmrc   electron_mirror=https://registry.npmmirror.com/-/binary/electron/  electron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/2、创建vite项目    pnpmcreate......
  • C++笔记 -- 使用STL的function实现回调机制(回调函数)
    1.使用普通函数示例一 代码:#include<iostream>#include<functional>//定义一个回调函数类型usingCallback=std::function<void(int)>;//定义一个函数,用于演示回调函数的使用voidperformOperation(intdata,Callbackcallback){//执......
  • setTimeout 是 DOM 提供的函数,不是JavaScript的全局函数
    JavaScript中包含以下7个全局函数,用于完成一些常用的功能(以后的章节中可能会用到):escape()、unescape()、eval()、isFinite()、isNaN()、parseFloat()、parseInt()函数描述decodeURI()解码某个编码的URI。decodeURIComponent()解码一个编码的URI组件。......