首页 > 编程知识 正文

md5算法原理图解,md5算法python实现

时间:2023-05-04 04:40:04 阅读:23945 作者:935

项目github地址: bitcarmanleeeasy-algorithm-interview-and-practice

经常因为同学的私人信件和留言而有问题。 是v号bitcarmanlee。 在千兆网上做明星的同学,在我的能力和时间允许的范围内,会尽量解决问题,一起进步。

1.python的md5匿名化一个字符串md5是数据处理中的常见手段。 python3.X也内置了md5算法。 看看md5的使用方法吧。

importhashlibdeftest (: s=' 123 ' m=hash lib.MD5 ) for i in range(5)5) : m.update (s.encode ) (UTF8 ) )

202 CB 962 AC 59075 b 964 b 07152 d 234 b 704297 f 44 b 1395235245 b 2497399 d 7a 93 bb0c8 de 146 c 67 b44 babb F4 e 6584 cc 0101193 d 7181 cc 88340 AE5B2B 17 BBA8b 17 ba8a8AE 理论上,进行5次md5后,结果应该相同,但最终输出的结果不同。

原因在于update方法。

当同一hashlib对象调用update方法时,如果第一次输入字符串a,第二次输入字符串b,则第二个md5的结果实际上是a b的md5的结果。

让我们来看一个简单的例子,看看我们的结论:

deftest (: s=' 123123 ' m=hash lib.MD5 ) m.update (s.encode ) utf8 ) ) result=m.hexdigest ) ) print

4297 f 44 b 13955-2352 45 b 2497-399 d 7a 93一直与先前for循环路径的第二次输出结果相同,即‘1231’在执行md5之后获得的结果。

2 .散列lib模块hashlib模块包含常见的散列算法,源代码中列出了以下内容:

# thistupleand _ get _ builtin _ constructor (mustbemodifiedifanew # alwaysavailablealgorithmisadded._ always )

fromhashlibimportmd5fromhashlibimportsha256 fromhashlibimportsha 512 hash _ functions=[ MD5,sha 256, sha512 ) defget_hash_code(s ) :result=[] forfunctioninhash _ functions 3360 hash _ obj=function ) s ) hash _ functions 360 hash _ obj=function ) s result.append (s

(md5 )、) 202 CB 962 AC 59075 b 964 b 07152 d 234 b 70 )、32 ) ) sha256 )、 ) a 665 a 45920422 F9 d 417 e 4867 efdc4FB8a 04 a1 F3 ff1f a 07 e 9988 e 888 ' 3c 9909 afec 25354 d 551 DAE 21590 bb 26 e 38d 53 f 2173 b8d C3 eee4 c 047 e B1 C1 eb8 b 88 b 88 b 855558 b

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。