代码改变世界

小点点的集合

2018-04-19 14:14  陆修远  阅读(185)  评论(0)    收藏  举报

想加密一些用户信息,user / password,随手搜算法,用python的hashlib 的md5,

方法是这样的

import hashlib

  m = hashlib.md5()

  m.update(u'sthstring')

  m.hexdigest()

向update里传入字符串,hexdigest算出一个,这个字符串的16位的摘要/特征码。

 

在idle里测试的时候,如果写成这样:

 

>>import hashlib

>>m = hashlib.md5()

>>def tohash(pw):
    m.update(pw)
    return m.hexdigest()

传入的pw相同,每次调用返回的hex每次都不同;

 

如果写成这样:

>>> def tohash(str):
  import hashlib
  m=hashlib.md5()
  m.update(str)
  return m.hexdigest()

 

传入相同的str,得到hexdigest()结果是固定的,可以打到目的

 

不知道为啥--不是因为def tohash(str) 或 def tohash(u'sth'),而是因为 函数中的m = hashlib.md5() 在循环内还是循环外  应该是关于函数的很基本的东西,不知道为什么