視訊檔案MD5值獲取及校驗
最近在做大檔案分割,分片上傳,達到充分利用網路頻寬
> 檔案的上傳與下載極易出錯,尤其涉及使用斷點續傳方式上傳或下載的檔案。
> 目的:校驗MD5值是為了防止在傳輸的過程當中丟包或者資料包被篡改
MD5值得作用:任何一個字串或檔案,無論是可執行程式、影象檔案、臨時檔案或者其他任何型別的檔案,也不管它體積多大,都有且只有一個獨一無二的MD5資訊碼,並且如果這個檔案被修改過,它的MD5碼也將隨之改變。
Mac,如何通過終端驗證檔案的MD5
在終端執行命令: md5 檔案的路徑
例如:
OC 根據視訊檔案路徑獲取檔案MD5
程式碼如下:
需要匯入標頭檔案和定義巨集
#import <CommonCrypto/CommonDigest.h>
#define FileHashDefaultChunkSizeForReadingData 1024*8
- (NSString*)getFileMD5WithPath:(NSString*)path
{
return (__bridge_transfer NSString *)FileMD5HashCreateWithPath((__bridge CFStringRef)path, FileHashDefaultChunkSizeForReadingData);
}
CFStringRef FileMD5HashCreateWithPath(CFStringRef filePath,size_t chunkSizeForReadingData) {
// Declare needed variables
CFStringRef result = NULL;
CFReadStreamRef readStream = NULL;
// Get the file URL
CFURLRef fileURL =
CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
(CFStringRef)filePath,
kCFURLPOSIXPathStyle,
(Boolean)false );
if (!fileURL) goto done;
// Create and open the read stream
readStream = CFReadStreamCreateWithFile(kCFAllocatorDefault,
(CFURLRef)fileURL);
if (!readStream) goto done;
bool didSucceed = (bool)CFReadStreamOpen(readStream);
if (!didSucceed) goto done;
// Initialize the hash object
CC_MD5_CTX hashObject;
CC_MD5_Init(&hashObject);
// Make sure chunkSizeForReadingData is valid
if (!chunkSizeForReadingData) {
chunkSizeForReadingData = FileHashDefaultChunkSizeForReadingData;
}
// Feed the data to the hash object
bool hasMoreData = true;
while (hasMoreData) {
uint8_t buffer[chunkSizeForReadingData];
CFIndex readBytesCount = CFReadStreamRead(readStream,(UInt8 *)buffer,(CFIndex)sizeof(buffer));
if (readBytesCount == -1) break;
if (readBytesCount == 0) {
hasMoreData = false;
continue;
}
CC_MD5_Update(&hashObject,(const void *)buffer,(CC_LONG)readBytesCount);
}
// Check if the read operation succeeded
didSucceed = !hasMoreData;
// Compute the hash digest
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5_Final(digest, &hashObject);
// Abort if the read operation failed
if (!didSucceed) goto done;
// Compute the string result
char hash[2 * sizeof(digest) + 1];
for (size_t i = 0; i < sizeof(digest); ++i) {
snprintf(hash + (2 * i), 3, "%02x", (int)(digest[i]));
}
result = CFStringCreateWithCString(kCFAllocatorDefault,(const char *)hash,kCFStringEncodingUTF8);
done:
if (readStream) {
CFReadStreamClose(readStream);
CFRelease(readStream);
}
if (fileURL) {
CFRelease(fileURL);
}
return result;
}
親身實踐驗證,獲取的檔案MD5值和MAC終端生產的MD5值一致,可放心使用 ~
共同學習,共同進步,共勉 ~
相關推薦
視訊檔案MD5值獲取及校驗
最近在做大檔案分割,分片上傳,達到充分利用網路頻寬 > 檔案的上傳與下載極易出錯,尤其涉及使用斷點續傳方式上傳或下載的檔案。 > 目的:校驗MD5值是為了防止在傳輸的過程當中丟包或者資料包被篡改 MD5值得作用:任何一個字串或檔案,無論是可執行程
Python校驗檔案MD5值
import hashlib import os def GetFileMd5(filename): if not os.path.isfile(filename): return myHash = hashlib.md5() f = open(filenam
獲取apk證書檔案MD5值
已有apk檔案,想要獲取簽名檔案的MD5簽名信息 方法一 1.先把apk解壓 2.在META_INF目錄下找到xxx.RSA檔案 3.確保安裝了jdk並且正確配置了環境變數 4.cmd中執行keytool -printcert -file xxxx.RSA目錄
獲取大檔案MD5值(JAVA)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
瀏覽器獲取檔案MD5值
能做到大檔案md5值的獲取,但是檔案越大耗時越久。 spark-md5工具包:https://download.csdn.net/download/weixin_36524613/10545957 <!DOCTYPE html> <html lang="en"> &l
EasyUi DataGrid中資料編輯方式及編輯後資料獲取,校驗處理
EasyUi中的DataGrid提供前臺編輯的相關函式。 實現客戶選中DataGrid中一列後,對選中列中的一個欄位進行編輯,並對資料進行實時校驗後,傳遞至後臺儲存的需求, 主要涉及到DataGrid中設定編輯單元格,獲取編輯單元格,編輯單元格的onchange
JAVA獲取檔案MD5值
/** * Md5校驗工具類 * @author Fengwx */ public class MD5Util { private static final char[] hexDigits = {'0', '1', '2', '3', '4', '5',
用loadrunner實現excel檔案下載功能的錄製及校驗
按照普通方式錄製指令碼,指令碼成功錄製後,需要做以下操作 1。定義變數: long file; long pr; int flen; 2。手工關聯: web_reg_save_param("pr","LB=","RB=","SEARCH=BODY",LAST); 第一個引數
國家商用password(五)基於SM2的軟件授權碼生成及校驗
clas 信息 ecp register 方法 序列號 mod 生成 pub 將公開密鑰算法作為軟件註冊算法的優點是Cracker非常難通過跟蹤驗證算法得到註冊機。以下。將介紹使用SM2國密算法進行軟件註冊的方法。 生成授權碼 選擇SM2橢圓曲線參數(P,a,b,N,
springboot~為Money類型添加最大值和最小值的註解校驗
status ret 大於 public http money string uil lin 在spring框架裏,為我們集成了很多校驗註解,直接在字段上添加對應的註解即可,這些註解基本都是簡單保留類型的,即int,long,float,double,String等,而如果
CRC碼計算及校驗原理的最通俗詮釋
5.3.2 迴圈冗餘校驗檢錯方案 奇偶校驗碼(PCC)只能校驗一位錯誤,本節所要介紹的迴圈冗餘校驗碼(CRC)的檢錯能力更強,可以檢出多位錯誤。 1. CRC校驗原理 &nb
JDK的下載、安裝、配置及校驗 — 全程圖文詳細教程
JDK的下載、安裝、配置及校驗 — 全程圖文詳細教程 JAVA的學習和開發,必須安裝配置好JDK(java development kit java開發工具包)。Java的開發平臺主要分2類:Java SE是標準版,Java應用程式開發 Application;Java EE是企業版
使用Python隨機生成身份證號碼及校驗
GitHub : https://github.com/jayknoxqu/id-number-util 身份組成方式 中華人民共和國國家標準GB 11643-1999《公民身份號碼》中規定:公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。 18位數字組合的方式是:
【五 form提交及校驗】 1. form表單提交
概述 對form表單的處理是任何web application的重要環節。Play能讓你輕鬆處理簡單form,而對複雜form的處理也變得可能。 Play的form處理建立在資料繫結基礎之上。Play會查詢POST請求中可以格式化的值並將它們繫結到Form物件上。之後Play可以使用模式匹配來處理後續邏
java獲取檔案MD5,獲取字串MD5
獲取md5值4個步驟: 1.建立MessageDigest物件md5。 2.使用md的update(byte[] buffer)方法將資料更新到md5物件中。 3.使用md5的digest()方法獲得摘要,該摘要是一個長度為16的陣列。 4.將該摘要陣列轉換為32位
Java實現MD5演算法過程,並利用自帶MD5函式進行對比校驗
文章目錄 一、環境說明 二、演算法原理概述 三、程式設計 資料結構 重要模組步驟 四、執行結果 一、環境說明 作業系統:window10 程式語言:Java (J
JAVA -----RSA加密解密簽名及校驗
由於專案要用到非對稱加密解密簽名校驗什麼的,於是參考《Java加密解密的藝術》寫一個RSA進行加密解密簽名及校驗的Demo,程式碼很簡單,特此分享! RSA加密解密類: package com.ihep; import java.io.BufferedRead
springboot~為Money型別新增最大值和最小值的註解校驗
在spring框架裡,為我們集成了很多校驗註解,直接在欄位上新增對應的註解即可,這些註解基本都是簡單保留型別的,即int,long,float,double,String等,而如果你自己封裝了新的類,那麼如果要校驗它,註解這塊需要自己寫一下,像money這個型別,如果希望對它進行校驗,註解這塊需要自己去寫。
對檔案或資料進行CRC校驗
用於對一個檔案進行CRC校驗,以確保檔案資料傳輸的正確性。 廢話不多說,直接上程式碼! crc32.h #ifndef CRC_32_H #define CRC_32_H #ifdef __cplusplus extern "C" { #endif void init_c
shell指令碼實現rysnc檔案備份以及資料傳輸校驗
通過shell指令碼整合了rsync(daemon)守護程序模式對檔案備份以及進行md5校驗的功能。 #!/bin/bash file=access_2018-12-8.logtarfile=./backup$(date +%F).tar.gz tar zcf $tar_file $filemd5sum