首页 > 编程语言 >C#:MD5加密(中文不一致问题)

C#:MD5加密(中文不一致问题)

时间:2022-12-09 16:14:20浏览次数:41  
标签:加密 newBuffer C# Default buffer txt MD5

MD5加密代码:

public static string GenerateMD5(string txt)
{
    using (MD5 mi = MD5.Create())
    {
        byte[] buffer = Encoding.Default.GetBytes(txt);
        byte[] newBuffer = mi.ComputeHash(buffer);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < newBuffer.Length; i++)
        {
            sb.Append(newBuffer[i].ToString("x2"));
        }
        return sb.ToString();
    }
}

其中代码:byte[] buffer = Encoding.Default.GetBytes(txt),通过调试看到Windows11系统默认用的Encoding为gb2132;

如果字符串中不包含汉字,使用DefaultUTF8效果是一样的。比如qwertyuiopasdfghjklzxcvbnm加密的结果都是"e5daaa90c369adfd156862d6df632ded"

但是如果字符串中包含汉字,使用DefaultUTF8效果是不一样的。

一般使用网页在线加密的都用的是UTF-8

 

标签:加密,newBuffer,C#,Default,buffer,txt,MD5
From: https://www.cnblogs.com/yellow3gold/p/16969210.html

相关文章

  • css知识点简记
    1.改变position:fixed;定位基准元素的方式,父级以上元素的:①tranform属性值不为none的元素②perspective值不为none的元素③will-change中指定了任意CS......
  • C语言运算符优先级列表
    初级运算符()、[]、->、.  高于  单目运算符高于算数运算符(先乘除后加减)高于关系运算符高于逻辑运算符(不包括!)高于条件运算符高于赋值运算符高于逗号......
  • JavaScript 大文件分片上传处理
    ​ 一、功能性需求与非功能性需求要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac支持文件和文件夹的批量下载,断点续传。刷......
  • Qt: MingW编译程序,crt2.o,crtbegin.o,crtend.o,No such file or directory
    QtMingW编译程序,遇见如下错误提示:1、:-1:error:cannotfindcrt2.o:Nosuchfileordirectory2、:-1:error:cannotfindcrtbegin.o:Nosuchfileordirectory3、:......
  • Qt:QCamera打开系统摄像头,截图保存实例
    ​​          Qt,C++学习交流群:302558294(欢迎你的加入)效果图:动态图太大,这里我就不弄动态图了。用到三个库:#include<QCamera>#include<QCameraImage......
  • Qt: QXmlStreamWriter Class写XML文件
    需求:使用QXMLStreamWriter,将如下界面的结构写入XML文件。效果:思路:1、先构造树形控件treeWidget.2、使用QXMLStreamWriter,写XML文件。源码:#include<QApplication>#include<......
  • Elasticsearch的SearchAfter
    Elasticsearch使用SearchAfter深度分页,分页的方式是上一页的最后一条数据sort里面的值来确定下一页的位置,在分页请求的过程中,有索引数据的增删,会实时的反映到游标上。每一......
  • C++新增数据类型long long ,unsigned long long
    相比于C++98标准,C++11整型的最大改变就是多了longlong。但事实上,longlong整型本来就离C++标准很近,早在1995年,longlong就被提议写入C++98标准,却被C+......
  • 第二章:10道C/C++经典面试题
    面试题11:设置地址为0x67a9的整型变量的值为0xaa66int*ptr;ptr=(int*)0x67a9;*ptr=0xaa66;说明:这道题就是强制类型转换的典型例子,无论在什么平台地址长度和整型数据......
  • C++猜数字游戏的程序,用srand()函数产生随机数
    /*编写一个猜数字游戏的程序:程序随机选择一个1到1000的数,然后输出:  Ihaveanumberbetween1and1000.    Canyouguessmynumber?  Pleasetype......