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()