关于MD5生成"d41d8cd98f00b204e9800998ecf8427e"

空值的MD5值为"d41d8cd98f00b204e9800998ecf8427e"

如果多个线程使用同一个MessageDigest实例,并且一个线程在另一个线程完成其计算之前重置了实例(可能是通过调用reset方法或重新创建MessageDigest实例),那么后一个线程可能计算的是空字符串的MD5值。

MessageDigest在没调用update()方法的时候,可能会返回个空值, 或者一个线程在另一个线程完成其update()调用之前调用了digest(),那么第二个线程的更新可能会丢失。

改成调用getMD5()方法的时候, 为每个MD5计算创建一个新的MessageDigest实例即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容