目前已知的MD5工具类为: 核心包、JDK、APACHE
以上三者对比结果为: 三者实现、测试结果都相差不大。
测试方案: 测试流程: 对安徽前后端会话序列化结果导出文件,读取为会话字符串进行MD5签名对比。 方案一、 相同字符串,计算多次MD5串是否会不同 方案二、 修改字符串局部,计算多次MD5串是否会相同。逐个字符修改,和所有修改后的MD5对比 方案三、 修改字符串局部,计算多次MD5串是否会相同。逐个字符修改,和原串MD5对比 测试结果: 方案一、(通过) 反复计算100万次,没有相同串 方案二、 2k的字符串: 对会话字体串修改单个字符,重复概率为:0.009,即0.9% 对会话字符串修改2个字符,重复概率为:0,即没有重复 21k的字符串: 对会话字体串修改单个字符,重复概率为:0.0055,即0.55% 对会话字符串修改2个字符,重复概率为:0.00004,即0.004% 107k的字符串: 对会话字体串修改单个字符,重复概率为:0.007,即0.7% 对会话字符串修改2个字符,重复概率为:0.00006,即0.006% 方案三、 2k的字符串: 对会话字体串修改单个字符,重复概率为:0.0109,即0.10% 对会话字符串修改2个字符,重复概率为:0,即没有重复 21k的字符串: 对会话字体串修改单个字符,重复概率为:0.00548 ,即0.54% 对会话字符串修改2个字符,重复概率为: 0.00004,即0.004% 107k的字符串: 对会话字体串修改单个字符,重复概率为:0.007,即0.7% 对会话字符串修改2个字符,重复概率为:0.00004,即0.004% 结论: 相同的字符串生成的MD5签名始终相同 MD5跟字符串长度没有关系,在修改单字符时重复概率不到1%,在修改2个字符重复概率基本为0