#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import hashlib
import base64
def get_string_md5(str):
"""
生成字符串的md5
短16位即 中間[8:24]位
"""
h1 =hashlib.md5()
h1.update(str.encode(encoding = 'utf-8'))# 指定字符編碼,md5輸入必須是二進制,這裏需要編碼
return h1.hexdigest()
def get_file_md5(filename):
"""
拿到文件的md5,大文件分批讀取
"""
with open(filename, 'rb') as f:
m = hashlib.md5()
while True:
data = f.read(1024)
if not data:
break
m.update(data)
return m.hexdigest()
def get_string_base64(string):
return base64.b64encode(string.encode('utf-8'))
def get_file_base64(filename):
"""
生成文件的base64碼
"""
with open(filename, 'rb') as f:
return base64.b64encode(f.read()).decode()
def get_string_sha1(string):
return hashlib.sha1(string.encode("utf-8")).hexdigest()
def get_file_sha1(filename):
with open(filename, 'rb') as f:
return hashlib.sha1(f.read()).hexdigest()
if __name__ == "__main__":
print(get_file_base64('main.py'))