一 hash的价值

hash值的唯一性仅仅在是同一个文件的情况下得到了同样的hash值,而哪怕错误一个字节也会得到不一样的hash值。

hash值得最大价值就是唯一性。这样在bin文件检查和校验这块用处非常大,做嵌入式的,经常会遇到版本无法找到情况,利用hash来查找bin文件是否一致,非常方便。

二 实例分析

python以简洁著称,下面给出一个python的例子:

import os
import argparse
import hashlib def check_file_hash(bin_file):
f = open(bin_file,"rb")
thehash = hashlib.md5()
theline = f.readline() while(theline):
thehash.update(theline)
theline = f.readline() return thehash.hexdigest() def get_parser():
parser = argparse.ArgumentParser(description='change extension of files in a working directory')
parser.add_argument('bin_file', metavar='BIN_FILE', type=str, nargs=1,
help='the directory where to change extension')
return parser def main():
parser = get_parser()
args = vars(parser.parse_args()) bin_file = args['bin_file'][0] hash_value = check_file_hash(bin_file)
print("hash_value",hash_value) if __name__=='__main__':
main()

github路径:

https://github.com/DyLanCao/python_cabin.git

三 总结

能让计算机做的,尽量使用计算机。

python计算二进制bin文件hash值的更多相关文章

  1. 利用python计算windows全盘文件md5值的脚本

    import hashlib import os import time import configparser import uuid def test_file_md5(file_path): t ...

  2. C++ 文件hash值 BT种子的hash值

    这个两个东东,是我在网上找到的.小小的修改了一下方便大家使用. 一个是 获取文件哈希值的,另外一个是获取torrent文件磁力链接的哈希值. 整理好的类下载地址: 文件hash值: http://pa ...

  3. python 通过文件路径获取文件hash值

    import hashlib import os,sys def CalcSha1(filepath): with open(filepath,'rb') as f: sha1obj = hashli ...

  4. java计算过G文件md5 值计算

    package io.bigdata; import java.io.File; import java.io.FileInputStream; import java.io.IOException; ...

  5. python用二进制读取文件

    python二进制读取文件 很多时候,都需要用到二进制读取文件.毕竟很多信息不是以文本的形式存储.例如:图片,音乐等等.这些东西都是有规则的二进制文件. 在python中,二进制读取采用rb的方式. ...

  6. 快速改变文件hash值的方法

    查看哈希值命令 Linux : md5sum + 文件名 $ md5sum .png fe5c3f5ef1d207bc1b646911b463c907 .png Windows : certutil ...

  7. windows下cmd命令行计算文件hash值

    命令:certutil -hashfile certutil -hashfile D:\.exe MD5 certutil -hashfile D:\.exe SHA1 certutil -hashf ...

  8. 数学思想方法-python计算战(8)-机器视觉-二值化

    二值化 hreshold Applies a fixed-level threshold to each array element. C++: double threshold(InputArray ...

  9. 获取文件hash值

    public string getFilesMD5Hash(string file)        {            //MD5 hash provider for computing the ...

  10. 在Win10右键菜单添加校验文件Hash值命令

    把以下代码保存为reg文件导入注册表即可. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\文件哈希校验] " ...

随机推荐

  1. SpringBoot2.7集成Swagger3

    1.引入pom坐标 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <ar ...

  2. C++文件处理工具类

    C++文件处理工具类,hpp文件,使用时只需要include即可,跨平台 File.hpp #ifndef FILE_HPP #define FILE_HPP #include <fstream ...

  3. 物联网浏览器(IoTBrowser)-MQTT协议集成和测试

    一.简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情 ...

  4. JS Leetcode 451. 根据字符出现频率排序题解分析

    壹 ❀ 引 大前天做的一道题,昨天发版到11点,前天聚餐,一直没时间整理,今天下班闲来无事,还是做个简单思路整理.本题来自LeetCode 451. 根据字符出现频率排序,难度中等,其实整理下思路,其 ...

  5. JS Leetcode 263. 丑数 题解分析,来认识有趣的丑数吧

    壹 ❀ 引 本题来自LeetCode263. 丑数,难度简单,题目描述如下: 给你一个整数 n ,请你判断 n 是否为 丑数 .如果是,返回 true :否则,返回 false . 丑数 就是只包含质 ...

  6. NC26212 小石的签到题

    题目链接 题目 题目描述 小石和小阳玩游戏,一共有 \(n\) 个数,分别为 \(1 \sim n\) .两人轮流取数,小石先手.对于每轮取数,都必须选择剩下数中的任意一个数 \(x\) ,同时还要取 ...

  7. NC16615 [NOIP2008]传纸条

    题目链接 题目 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接 ...

  8. 从零开始手写 mybatis (三)jdbc pool 从零实现数据库连接池

    前景回顾 第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis. 第二节 从零开始手写 mybatis(二)mybatis interceptor ...

  9. OpenStack调度器

    计算使用 nova-scheduler 服务来确定如何调度计算请求 默认配置中,调度程序会考虑以下所有条件的主机: 位于请求的可用区 (map_az_to_placement_aggregate) 放 ...

  10. spring boot使用拦截器修改请求URL

    假如我要将请求路径中/foobar都去掉? 1.定义拦截器 package com.laoxu.test.helloweb; import org.springframework.stereotype ...