中文md5加密不一致
A. 中文字符串C++MD5加密结果与PHP的加密结果不一致,怎么办
C++你用什么存的中文?
用Char*的话,因为是单字节,所以支持是有问题的应该
如果是CString的话,八成是编码不统一导致的
B. md5加密java与ASP中文不一致
记事本打开所有文件,都另存为“utf-8”或都另存为“ANSI”格式的文件,只有编码相同时,才能得到相同结果。如果一个是utf-8的文件,一个是ANSI的文件,他们俩对中文的字节占用不一样,计算得到的结果也会不一样。英文,数字,标点占用的字节一样,所以得到相同结果。
C. 同样的密码经过MD5加密后的会不会不一样
首先不同的语言的md5加密方式肯定是一样的 使用C#的MD5加密时要注意几点: 1.密码是中文的:md5Hasher.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes("中文")); 英文的要注意转换字符集(对于常用的MS有点反了,反正针对密码所用的字符集就行了) 2.如果要匹配数据库的密码,sql的md5加密是补足位数的,而网上的算法没有做这件事,所以经常会出现少几位的情况,而且少的几位肯定是“0”所以要注意补0,也就是ToString("X2") 贴一段代码: static void Main(string[] args) { MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider(); byte[] hashedDataBytes; hashedDataBytes = md5Hasher.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes("中文")); StringBuilder tmp = new StringBuilder(); foreach (byte i in hashedDataBytes) { tmp.Append(i.ToString("x2")); //就是这里的处理 } Console.WriteLine(tmp.ToString()); Console.Read(); }
D. Delphi的MD5算法加密中文不正确,是啥原因
这种情况与语言用的汉字编码(内码)有关,看是UNICODE还是什么其他编码?windows版本不同用的编码也不同,表面显示的是“中国人”,其实内存中的二进制码不同,算出来的MD5当然不同。
E. 我的MD5加密出来的怎么不一样
这是一个hash 算法 如果结果不同,那应该是你实现出现了错误
F. JAVA md5加密 两次不一致 中英文问号
把代码发一下 。可能是编码问题 也可能是字节数组转化字符串的问题
G. MD5加密 和 手打的 不一致
不是很明白你说的意思。在登录页百时为什么要手动打MD5加密码呢?
MD5加密的流程是这样的:
注册页面:文本框输入密码,假设文本框名称与数据库字段名均为"passwd“
保存数据:rs("passwd")=md5(trim(request.form("passwd")))
这样保存在数据库里的就不是你输入的密码,而是MD5加密码了。
登录页面:文本框输入密码(是原密码,不是MD5加密码)
验证页面:passwd=md5(trim(request.form("passwd")))
if passwd=rs("passwd") then 通过
因此,无论是注册还是登录输入的都是原密码,而不是MD5码,使用MD5加密的目的是为了防止数据库被盗而导致密码泄露的漏洞。
如果你确实要手打的话,也是可以的,除非是大小写不符或有空格等,有些字符还跟全角半角有关。
H. .net(md5)加密汉字的结果与java(md5)加密汉字的结果不一样。。。
..仔细检查一下软件设置..
I. 为什么同一个字符串,md5加密后的结果不一样
那后面的符号好像是对象地址值,你把那两行打印换成这个看看 System.out.println (new String(bytes)); System.out.println (new String(bytes2));
J. 不同的MD5加密软件,加密相同的两个汉字,结果不一样啊。
应该是由于汉字编码的问题。比如utf-8,utf-16,utf-32,gbk等