python语句计算文件的md5值以及字符串的hashcode值

python语句计算md5值

md5值就是使用MD5 的数据摘要算法计算出来的一串数值。



用例:

  • 新建某一文件(作为测试),拿到文件的路径
import hashlib
import os
file_path = 'D:/*/*/*/pangyuan.txt'
def get_md5_01(file_path):
  if os.path.isfile(file_path):
    f = open(file_path, 'rb')
    f.seek(0, os.SEEK_END)
    fileLen=f.tell()
    f.seek(0, 0)
    body = f.read(fileLen)
    # print(str(body))
    # 拿到二进制数据
    md5_obj = hashlib.md5(body)
    # 二进制转为十六进制
    hash_code = md5_obj.hexdigest()
    f.close()
    # hash_code.lower() 字符串转小写
    # hash_code.upper() 字符串转大写
  return hash_code.upper()
  print(get_md5_01(file_path))

运行结果:

  • 大写:
    在这里插入图片描述
  • 小写:
    在这里插入图片描述


python计算hashcode值

  • python中的hash() 用于获取取一个对象(字符串或者数值等)的哈希值


用例:

import *
def convert_n_bytes(n, b):
  bits = b * 8
  return (n + 2 ** (bits - 1)) % 2 ** bits - 2 ** (bits - 1)

def convert_4_bytes(n):
  return convert_n_bytes(n, 4)

def getHashCode(str):
  h = 0
  n = len(str)
  for i, c in enumerate(str):
    h = h + ord(c) * 31 ** (n - 1 - i)
  return convert_4_bytes(h)
# 直接拿上面的md5字符串进行验证
print(getHashCode(md5_01))

*注意字符串的大小写计算出的hashcode值不相同

结果:

  • 大写:
    在这里插入图片描述
  • 小写
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45686583/article/details/121788904