Text文件是一个简单的文本文件,其中包含纯文本(无格式)内容。它可以被打开和读取,也可以被写入和编辑。文本文件可以使用Python内置的open()函数打开,可以使用读取模式('r')或写入模式('w')打开。
Markdown文件是一种标记语言,用于在文本中添加格式和结构。它包含文本和特定的标记,用于指示文本应该如何格式化。Markdown文件可以包含标题、列表、链接、图像等元素。Markdown文件可以使用文本编辑器或Markdown编辑器创建和编辑。在Python中,可以使用第三方库(如markdown或mistune)将Markdown文件转换为HTML或其他格式。
因此,text文件是纯文本,没有格式,而Markdown文件包含标记和格式,用于指示文本的呈现方式。
题中所示代码中,python实现了计算空字符串的MD5值,并对MD5的值的十六进制的字符串所表示的字节进行BASE64处理。
不像Python内部有实现md5功能,根据ANSI C标准,C语言的标准库里是没有md5功能的;
但是RFC1231规定了MD5功能的C实现并提供了附件,可以直接用,也可以直接获取现成的实现,在编译链接时指定正确的.h头文件和.lib静态链接库文件;
这里我采取前者的做法(电脑上没有装VC,有VC就简单很多,使用的是minGW)大概六七百行代码左右。
然后这里展示不完,给个实现效果图
这是我整理的实现代码,其中BASE64部分使用了github上littlestar的b64.c,然后MD5计算部分直接参考了RFC1231标准的附录。RFC1231文件有计算方法
BASE64的编码原理
python的md5模块使用非常简单,包括以下几个函数:md5.new([arg])
返回一个md5对象,如果给出参数,则相当于调用了update(arg)
md5.updte(arg)
用string参数arg更新md5对象
md5.digest()
返回16字节的摘要,由传给update的string生成,摘要没有ascii字符
md5.hexdigest()
以16进制的形式返回摘要
代码示例:
01.#!/usr/bin/python
02.import
sys
03.import
md5
04.
05.str=sys.argv[1]
06.key =
md5.new()
07.key.update(str)
08.print
key.hexdigest()
09.str=sys.argv[1]
保存代码为md.py
1.[fengyj@fengyj
python]$ chmod +x md.py
2.[fengyj@fengyj
python]$ ./md.py fengyajie
3.74d040444b8f20d37aa9b2bd2997cd64
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)