两个不同的字符串用MD5加密后有没有可能相同

我的登录系统识别身份是用用户名+随机生成的9位数的key,再用MD5加密生成cookie值的,每次点评的时候,我都会用这个cookie值与数据库保存的key值比较,如果相等就认为是本人!
但今天发现,有会员发映,他点评后,显示的用户名是别人的,我觉得有点奇怪!
我这个加密方法,除纯数字的会员有可能产生相同的key,但中文的应该不会吧,除非两个不同的字符串用MD5加密后有没有相同,是不是这样呢!
另外我想知道,md5最长能加多长的字符串,有没有可能超过100位数就会自动截断呢

第1个回答  2010-08-12
1 你说的两个不同的字符串用MD5计算产生相同结果(散列冲突)是极小概率事件,基本上可以认为不会发生。除非你是研究MD5破解的科学家。
我不认为你的情况是极小概率的散列冲突,更有可能是你的MD5算法有问题。

2 MD5将任意长度的字符串映射为一个128位散列值。
所以输入可以是任意长度的,不存在你说的“自动截断”本回答被提问者采纳

两个不同的字符串用MD5加密后有没有可能相同
1 你说的两个不同的字符串用MD5计算产生相同结果(散列冲突)是极小概率事件,基本上可以认为不会发生。除非你是研究MD5破解的科学家。我不认为你的情况是极小概率的散列冲突,更有可能是你的MD5算法有问题。2 MD5将任意长度的字符串映射为一个128位散列值。所以输入可以是任意长度的,不存在你说的...

两个不同的字符串用MD5加密后有没有可能相同
存在这样的可能性,但是非常小

有没有两个字符串MD5加密后结果是一样的?MD5加密的结果是唯一的么?
有的,MD5的加密结果不是唯一的。具体你可以看看下面的文字,或却说读一下文字的出处,希望对你能有帮助。MD5 Van Oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(Brute-Force Hash Function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元...

不同字符串的md5有可能相同吗?
不同字符串的MD5有可能会相同,但这种可能性极小。MD5之所以很难被反向破译,其原因就在于,同样的MD5密文对应着无数种明文的可能,也就是说,存在多个字符串或者文件其MD5密文相同的情况,这种现象叫做“碰撞”。由于MD5的长度只有128Bit,那么一共就存在2^128=3.402823669e+38种可能,而字符串的长度...

MD5加密问题
同一明文经过MD5加密后,密文是相同的,不同明文经过MD5加密后,密文是不会相同的。

md5不同内容加密结果可能一样吗
md5只是一种算法加密而已,并且这种算法加密结果的值是有限的,假设我们设置md5加密所有结果的值的集合个数为n,当我们对n+1个数值进行加密的时候,必然会出现两个数值加密的结果是一样的!

md5解密字符串
MD5的加密是不可逆转的,是为了保证文件的正确性,防止一些人盗用程序。而且不同的字符串加密后结果可能一样,但是几率非常小。MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。Message-Digest泛指字节串(Message)的Hash...

md5会有重复的可能吗
一般认为任何一个字符串都有一个对应的md5加密串的确这样. md5算法对输入串的形式没有要求.如果将26个英文字母组合成32位字符串显然不是只有32位串才能被md5加密. 所以这么比较无意义.事实上有可数无穷多个字符串可以被md5加密, 所以自然会有重复, 但这不叫"不够用". 因为大多数使用情形下, 有重复...

有没有MD5加密后和自身长得一样的字符串
概念普及一下: MD5 并不是加密算法,而是摘要算法。加密算法是可逆的,摘要算法是理论上不可逆的。如果说MD5是加密算法,那还不如称他是超级压缩算法呢,因为你输入任意长度的明文给他,结果都是一个定长16 、32、64。

不同语言的md5加密同一字符串,结果是不一样的吗?
首先不同的语言的md5加密方式肯定是一样的 使用C#的MD5加密时要注意几点:1.密码是中文的:md5Hasher.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes("中文"));英文的要注意转换字符集(对于常用的MS有点反了,反正针对密码所用的字符集就行了)2.如果要匹配数据库的密码,sql的md5加密是补足...

相似回答