想研究下MD5算法,觉得先要学习下如何使用,写了一段python来得到MD5码,上代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import optparse
import hashlib
def getFileMd5(name):
m = hashlib.md5()
with open(name, "rb") as f:
# for chunk in iter(lambda: f.read(4096), b""):
for chunk in iter(lambda: f.read(4096), b''):
m.update(chunk)
return m.hexdigest()
def getStrMd5(name):
m = hashlib.md5(name)
# m.update(name)
return m.hexdigest()
def main():
parser = optparse.OptionParser("usage%prog " + \
"-f <file name> -s <string>")
parser.add_option('-f', '--file', dest='fname', type='string', \
help='input file name')
parser.add_option('-s', '--string', dest='sname', type='string', \
help='input string')
(options, args) = parser.parse_args()
if (options.fname == None) & (options.sname == None):
print parser.usage
return
elif (options.fname != None):
name = options.fname
res_md5 = getFileMd5(name)
else:
name = options.sname
res_md5 = getStrMd5(name)
print "input param:[%s] result md5:[%s]" %(name,res_md5)
if __name__ == '__main__':
main()
后面可能经常要研究算法,确定下流程:
1. python写一个使用的小程序
2. 一篇文字分析算法原理
3. C++实现该算法
确保了解透彻一些。