【Python】Shell MD5使用的那些事
2015-12-07 11:57
881 查看
MD5 应该是用的非常多的算法,就自己使用经验说说吧。
场景
算法层面不多说了,维基百科,还有很多文章都有说明。主要用过的场景
密码存储,现在基本没怎么有使用的了,毕竟破解容易了很多
API校验,现在使用的也蛮多的,API双方都有一个私有key,把数据和key放到一起生成token,两边校验(注意的一点是对于unicode编码,一定要encode)
文件校验,这个用的还挺多,大家不要总是忘了这一步,
Xcode植入后门就是教训
用法
尽量的列出使用过的方式,多个方式可以相互印证字符串MD5
Shell 方式
一般都会有md5sum命令(Centos)
# echo -n "sweet girl"|md5sum 74417797d6a7200192978659effa5e2d -
或者使用openssl命令
# echo -n "sweet girl"|openssl md5 (stdin)= 74417797d6a7200192978659effa5e2d
Python
代码比较短,这里写成命令方式# python -c "import hashlib; print hashlib.md5('sweet girl').hexdigest()" 74417797d6a7200192978659effa5e2d
Lua
Lua中没有标准的实现,不过C拓展和纯Lua版本也容易找到,LuaJIT推荐使用春哥的 lua-resty-string 模块,基于FFI,很快
文件MD5
文件校验使用的比较多的还是文件下载的校验Shell 方式
# md5sum printf.lua 629fc9a9c1b1debd24e162d817f4e4a7 printf.lua
openssl
# openssl md5 printf.lua MD5(printf.lua)= 629fc9a9c1b1debd24e162d817f4e4a7
Python
需要一块一块的读取#coding:utf-8 #@orangleliu #fname: md5file.py import hashlib def md5_for_file(path, block_size=256*128, hr=True): md5 = hashlib.md5() with open(path,'rb') as f: for chunk in iter(lambda: f.read(block_size), b''): md5.update(chunk) if hr: return md5.hexdigest() return md5.digest() if __name__ == "__main__": print md5_for_file("printf.lua")
使用
# python md5file.py printf.lua 629fc9a9c1b1debd24e162d817f4e4a7
相关文章推荐
- mysql用shell建100多字段表并导入
- shell教程
- Tomcat中PHP运行需要root权限的shell文件
- Hadoop教程(三)HDFS文件系统Shell命令
- shell中局部变量及local命令
- ubuntu shell显示git branch
- 使用shell定时自动备份mysql数据库
- 初识RMAN4 : RMAN压缩、加密备份,shell中调用RMAN备份
- 关于MASTER=spark://SparkMaster:7077 ./spark-shell问题
- linux shell编程(计算器示例)
- 《Linux命令、编辑器与Shell编程》读书笔记5-用户和文件权限管理
- -bash: /bin/rm: Argument list too long的解决办法
- -bash: /bin/rm: Argument list too long的解决办法
- shell脚本启动storm 集群
- Shell编程
- linux笔记 第九天 软raid、bash循环进阶、lvm详解、压缩和归档工具
- Linux的Shell脚本中IF流程控制语句的基本语法
- SHELL笔记-2
- 【Solved】XShell Vim、终端乱码问题
- shell 中的算术运算