pythonhexdigest
1. 如何使用python来判断图片相似度
from PIL import Imageimport os#import hashlib def getGray(image_file): tmpls=[] for h in range(0, image_file.size[1]):#h for w in range(0, image_file.size[0]):#w tmpls.append( image_file.getpixel((w,h)) ) return tmpls def getAvg(ls):#获取平均灰度值 return sum(ls)/len(ls) def getMH(a,b):#比较100个字符有几个字符相同 dist = 0; for i in range(0,len(a)): if a[i]==b[i]: dist=dist+1 return dist def getImgHash(fne): image_file = Image.open(fne) # 打开 image_file=image_file.resize((12, 12))#重置图片大小我12px X 12px image_file=image_file.convert("L")#转256灰度图 Grayls=getGray(image_file)#灰度集合 avg=getAvg(Grayls)#灰度平均值 bitls=''#接收获取0或1 #除去变宽1px遍历像素 for h in range(1, image_file.size[1]-1):#h for w in range(1, image_file.size[0]-1):#w if image_file.getpixel((w,h))>=avg:#像素的值比较平均值 大于记为1 小于记为0 bitls=bitls+'1' else: bitls=bitls+'0' return bitls''' m2 = hashlib.md5() m2.update(bitls) print m2.hexdigest(),bitls return m2.hexdigest()''' a=getImgHash("./Test/测试图片.jpg")#图片地址自行替换files = os.listdir("./Test")#图片文件夹地址自行替换for file in files: b=getImgHash("./Test/"+str(file)) compare=getMH(a,b) print file,u'相似度',str(compare)+'%'
2. 你好,可以通过python程序实现文件转MD5码吗如果可以能发一下程序吗
使用python获取指定文件的md5码,代码和运行效果如下;
获取wjmd5.py自己的md5为例
#--coding:utf-8;
import hashlib as hash;import os.path;
try: get_ipython();
except:from sys import argv;s1=(os.path.dirname(argv[0]));cwd=(s1 if s1!="" else os.getcwd());os.chdir(cwd);
md5= hash.md5();
res=None;fna=input('请输入文件名');
with open(fna, "rb") as i: md5.update(i.read());res= md5.hexdigest();
print(res);
用hash呗。
import hashlib
a = "a test string"
print hashlib.md5(a).hexdigest()
print hashlib.sha1(a).hexdigest()
print hashlib.sha224(a).hexdigest()
print hashlib.sha256(a).hexdigest()
print hashlib.sha384(a).hexdigest()
print hashlib.sha512(a).hexdigest()
针对str类型的。
加密的话,可以对最后得出的hash值再处理即可。比如左移,右移,某2位替换,某位加几等等即可。
解密直接用逆序就可以了。
4. python中怎么调用上一函数的返回值
修改函数定义为save_image(content, dir_path),调用时传递实际路径作为参数。
5. 有没有大神会用python实现基于md5算法的文件完整性校验啊
importhashlib
importos
BUF_SIZE=65536
defget_md5(file_path):
returnget_md5_of_file(file_path)
defget_md5_of_file(filePath):
md5=hashlib.md5()
withopen(filePath,'rb')asfile:
whileTrue:
data=file.read(BUF_SIZE)
ifnotdata:
break
md5.update(data)
returnmd5.hexdigest()defget_md5_of_string(string):
returnhashlib.md5(string.encode()).hexdigest()
6. 怎么样给python文件加密
简单模式:
from hashlib import md5
def md5_file(name):
m = md5()
a_file = open(name, 'rb') #需要使用二进制格式读取文件内容
m.update(a_file.read())
a_file.close()
return m.hexdigest()
if __main__ == '__init__':
print md5_file('d:/test.txt')
大文件速度更快一点的方式
#!/usr/bin/python
#encoding=utf-8
import io
import sys
import hashlib
import string
def printUsage():
print ('''''Usage: [python] pymd5sum.py ''')
def main():
if(sys.argv.__len__()==2):
#print(sys.argv[1])
m = hashlib.md5()
file = io.FileIO(sys.argv[1],'r')
bytes = file.read(1024)
while(bytes != b''):
m.update(bytes)
bytes = file.read(1024)
file.close()
#md5value = ""
md5value = m.hexdigest()
print(md5value+"\t"+sys.argv[1])
#dest = io.FileIO(sys.argv[1]+".CHECKSUM.md5",'w')
#dest.write(md5value)
#dest.close()
else:
printUsage()
main()
7. Python基本语法
1.Hello World
实例 HelloWorld.py
# !/usr/bin/python3
print(“Hello, World!”);
运行脚本
$python HelloWorld.py
注解:以如上方式运行,第一行无意义;但以./HelloWorld.py的方式运行,第一行则指定python解释器的位置
2.标识符
必须字母或下划线开头
标识符其他部分是字母、下划线和数字
大小写敏感
3.设置编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:
# -- coding: cp-1252 --
4.注释
python单行注释以#开始,多行注释可以用多个#或'''和"""
例子
#!/usr/bin/python3
# 注释
# 注释
'''
注释
注释
'''
"""
注释
注释
"""
print (“Hello, World!”)
4.行和缩进
python使用行缩进代表代码块而不需要({}),同一个代码块的行缩进必须一致,否则报错。
5.多行语句
python如果一个语句过长可以用 实现多行语句。
sum = one +
two +
three
6.等待用户输入
执行下面的程序在按回车键后就会等待用户输入:
#!/usr/bin/python3
input(“按下 enter 键退出。”)
用户按下键时,程序将退出。
7.import 与 from…import
在 python 用 import 或者from…import来导入相应的模块。
将整个模块(somemole)导入,格式为:* import somemole*
从某个模块中导入某个函数,格式为:from somemole import somefunction
从某个模块中导入多个函数,格式为:from somemole import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为:from somemole import *
8. python和php计算md5为什么不一样
#!/usr/bin/envpython
#-*-coding:UTF-8-*-
importhashlib
string='123456SkinRun51'
md5=hashlib.md5()
md5.update(string.encode('utf-8'))
res=md5.hexdigest()
print('md5加密后结果:',res)
-------------------------------------------
echomd5(utf8_encode('123456SkinRun51')).PHP_EOL;
exit();
叙述:python3.6.6 ;php7
9. python如何遍历文件夹然后生成md5
importos,hashlib
defgetlistdir(path):
try:#如果path是一个文件的完整名称,os.listdir会抛出错误
fl=os.listdir(path)
exceptExceptionase:
fl=[]
finally:
returnfl
defgetallfile(path):
allfile=[]
fl=getlistdir(path)
iflen(fl)!=0:
fl=list(map(lambdax:path+'\'+x,fl))
allfile=allfile+fl
forfinfl:
allfile=allfile+getallfile(f)
returnallfile
defmakemd5(stri):
md5=hashlib.md5()
md5.update(stri.encode('utf-8'))
returnmd5.hexdigest()
defmain():
myfilelist=getallfile('.')#获取当前文件'.'中的所有文件和文件夹名list
myfilestr='|'.join(myfilelist)#文件list转换为以'|'分隔的字符串
print(myfilestr)#显示要进行md5摘要加密的字符
print("md5=",makemd5(myfilestr))#计算并显示md5码
main()