工作中用到了MD5值来进行对文件校验,MD5本身就是一个很出色的算法,一定程度上解决了hash散列的冲突,关于MD5的内容网上也有很多,这里只要是进行一个实验,验证一下文件校验方面的工作,因为习惯使用了python来完成这样的任务,这里也是使用python,了解到python本身自带有hashlib模块,该模块中就包含了所需的MD5方法,当然python也有专门的MD5模块可以使用,使用得当发的大同小异,但是个人觉得hashlib模块更好用一些,今天就使用python的os、commands还有hashlib三个模块来进行实验,其中,前两个模块主要是为了可以在python脚本中执行Linux的shell命令,以此来验证一下同一个文件以及文件内容是否可以得到与hashlib模块MD5方法相同的MD5值,好了不多说了,下面是程序,很简单的一个验证,里面都有详细的注释就不多解释了:
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' 功能:校验文件MD5值 ''' import hashlib, binascii import md5 import os import commands #使用python自带的hashlib库 def get_md5_value(str): my_md5 = hashlib.md5()#获取一个MD5的加密算法对象 my_md5.update(str) #得到MD5消息摘要 my_md5_Digest = my_md5.hexdigest()#以16进制返回消息摘要,32位 return my_md5_Digest #使用python自带的hashlib库如果m.update(a)之后在 m.update(b),那么就相当于m.update(a+b),这里验证一下 def get_md5_value_two(str1, str2): my_md52 = hashlib.md5() my_md52.update(str1) my_md52.update(str2) my_md52_Digest = my_md52.hexdigest() return my_md52_Digest #使用SHA1 def get_sha1_value(str): my_sha = hashlib.sha1() my_sha.update(str) my_sha_Digest = my_sha.hexdigest() return my_sha_Digest
#利用os模块system()方法获取文件的MD5值 def get_file_md5_value(filename): return os.system('md5sum ' + filename + '|cut -f1') #利用os模块popen()方法获取文件的MD5值 def get_popen_file_md5_value(filename): return os.popen('md5sum ' + filename + '|cut -f1') #获取文件内容的MD5值 def get_file_content_md5_value(filename): fp = open(filename) fp_content = fp.read() return get_md5_value(fp_content) #利用commands模块获取文件的MD5值 def get_commands_file_md5_value(filename): return commands.getoutput('md5sum ' + filename + '|cut -f1')
if __name__ == '__main__': string1 = 'We are friends!!!' string2 = 'Do agree with me"htmlcode">------------------------------------------------- 原始字符串为:We are friends!!! hashlib模块MD5值为:469306cbddd0cc5917b9536c54e619ab 32 SHA1值为:7a3f8637b61108f702052dda52e1251392228260 40 ------------------------------------------------- 原始字符串为:Do agree with me"htmlcode">1.[root@localhost/root]# 表示登陆进去系统,其中#是超级用户也即root用户的系统提示符 2.reboot命令可以重启系统 3.关闭系统使用(该命令只可被超级用户使用):shutdown[选项][时间][警告信息] -k:不真正关机只是发警告系想你给所有用户 -r:关机后立刻重启 -h:关机后不启动 -f:快速关机重启时跳过fsck -n:快速关机不经过init程序 -c:取消一个已经运行的shutdown 4.文件操作命令 ls -a列出目录下面所有文件名包括隐藏的文件即以“.”开头的文件 ls -l使用长格式列出文件 ls -F在列出的文件名称后面加一个符号(如可执行文件加*目录加/) mkdir filename创建新的目录 rmdir filename删除已经建立的目录 cd filename 进入文件目录 cp -r 源文件 目的文件 复制文件 rm -r filename删除该目录以及目录下所有的子目录 rm -f不经确认强制删除文件 rm -i filename 删除文件 mv 源文件路径 目的文件路径 移动文件命令 mv filename1 filename2 重命名 cat filename显示文本文件内容 cat file1 file2 file3依次显示3个文件 cat -n filename显示文档内容的同时显示行号 more filename显示文本文件(内容较多的) pwd显示当前路径 5.用户以及用户组管理 useradd username创建新的用户 userdel username删除用户 groupadd groupname创建新的用户组 groupdel groupname删除用户组 su -username赋予普通用户特权或超级用户别的身份 chomd[who][+|-|=][mode]filename勇于改变文件或者目录的访问权限 chown[用户:组]文件 用于更改某个文件或者目录的属主和属组 6.进程管理命令 ps -e显示所有的进程 ps -f全格式 ps -l长格式 top 动态显示当前进程和其他情况输入,可以加上参数: q可以退出查看的页面 (空格)立即刷新显示 h/?显示帮主画面 m切换显示内存信息 t切换显示进程和CPU信息 c切换显示命令名称和完整命令行 M根据驻留内存大小进行排序 P根据CPU使用百分比大小进行排序 kill命令用于杀死后台的进程主要有两种使用方法: kill[-s 信号] 进程号 杀死指定进程 kill -l显示进程列表 cron命令用来实现定时任务的完成,非手工启动 cron -l查看目前已经存在的cron任务 7.磁盘及文件命令 df -k显示各个分区的磁盘空间使用情况 mount[选项]设备 目录 挂载文件 umount[-f]directory强制卸载一个文件系统 8.软件安装命令 tar -c filename创建一个新的档案文件 tar -t filename查看档案文件的内容 tar -x filename分解档案文件的内容 tar -f filename指定档案文件的名称 tar -v filename显示过程信息 tar -z filename采用压缩方式 rpm -i packagename安装包 rpm -U packagename升级包 rpm -qa列出已经安装的全部软件包 rpm -qf filename查询某个特定的文件属于哪个包 rpm -qi packagename查询某个包的功能 rpm -e packagename删除包 9.vim使用 vim有三个模式:命令行模式、文本输入模式、末行模式 输入vim即可进入vim编辑器,点击ESC即可进入命令行模式,点击i即可进入文本编辑模式输入:即可进入末行模式 在末行模式输入q即可退出;输入wq即可保存操作后退出;输入q!强制退出 10.head/tail head -n x filename查看文件的前x行内容 tail -n y filename查看文件的后y行内容 head filename查看文件的前十行内容 tail filename查看文件的后十行内容 tail -f filename显示后十行内容,并且在内容增加后自动显示新增的文件内容 11.网络配置 ifconfig -a查看所有网卡状态信息 ifconfig -V查看ifconfig命令版本信息 ifconfig -s查看统计信息 ifconfig eth ipaddress 设置网卡IP ifconfig eth down 关闭网卡 ifconfig eth up启动激活网卡 ifconfig eth netmask netmaskaddress 设置网卡的子网掩码地址 ifconfig eth ipaddress netmask netmaskaddress 同时设置IP和子网掩码地址 ifconfig eth查看网卡状态 route查看路由信息 route add -net ipaddress netmask netmaskaddress dev eth指定接口 netstat显示网络情况 ping检测网络连通性 nslookup ip查看该IP对应的域名 host domainname查询对应域名的IP 12.时间 /sbin/hwclock --show查看当前硬件时间 /sbin/hwclock --hctosys将硬件时间同步到Linux系统 /sbin/hwclock --systohc将Linux时间同步到硬件时间 13.文档 df -k以KB为单位显示各分区的信息 df -a显示所有分区包括大小为0的分区 df -T显示分区类型 du -b /file以字节为单位显示file文件夹下各个文件夹的大小 du -ks file以KB为单位显示file文件夹总大小 iostat显示CPU的情况 tar -c创建包 tar -x解包 tar -t列出包中的内容 tar -r增加文件到指定包中 tar -u更新包中的文件 tar -zcvf file.tar.gz file压缩file tar -zxvf file.tar.gz file解压缩file.tar.gz find -name file1查找file1 grep[命令选项]要查找的匹配模式[要查找的文件] 查找文件 grep str1 file在file中查找字符串str1 grep -r str1 /file在/file及其子目录下所有文件中查找字符串str1 ps -ef | grep filename在所有进程中查找包含filename的进程信息 14服务 service tomcat4 start启动tomacat4服务 service tomcat4 stop关闭tomacat4服务今天的实验就这些了。
以上这篇python 获取字符串MD5值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]