標籤: MD5

HashMyFiles

HashMyFiles 2.35 中文可攜版 ~ 快速算出檔案的SHA1、CRC32、MD5

許多軟體提供的網站,都會順便跟你說這個軟體的md5是什麼。其實md5、sha1、crc32都是一種演算法,檔案經過這些演算法計算後會得到一組雜湊值,這些雜湊值大部份的情況下,都是獨一無二的值。所以,如果檔案內容被有心人士變動,雜湊值當然就會隨之改變囉!

HashMyFiles這個軟體,正是來計算SHA1、MD5、CRC32的軟體,它的好處是免安裝,而且有中文化,計算雜湊值速度也不賴,可以一次加入整個資料夾的檔案等,算是一個非常簡單且實用的軟體。

 

◎◎軟體小檔案◎◎
■ 軟體名稱:HashMyFiles Portable
■ 軟體版本:2.05
■ 軟體介面:中文
■ 軟體性質:免費軟體
■ 支援系統:Windows
■ WIN版下載:http://forum.jeasy.info/viewtopic.php?f=6&t=155
■ SHA1驗證碼: 1b87d7e6e09154a71ac497aaf39051dcbe430b79
■ 官方網站:http://www.nirsoft.net/utils/hash_my_files.html

 

Step 1.
首先,先下載此一軟體,並且解壓縮後執行「HashMyFiles.exe」。

Step 2.
接下來,只要按下功能表的【檔案】,就可以選擇要加入計算雜湊值的檔案或是資料夾。當選擇資料夾時,會將該資料夾內的檔案全部加入計算的清單。

Continue reading

如何在 Objectivie-C 中計算 MD5 雜湊值?

MD5 是一個相當常使用雜湊演算法,通常是用於驗證字串或是檔案是否正確。最近海芋在 iOS App 開發過程中,也有需要在 Objectivie-C 中計算 MD5 雜湊值,在 Objectivie-C 中,其實就有計算雜湊值的函式 CC_MD5,使用方式也很簡單,如果有需要這個函式的朋友,那麼就趕快來看海芋的使用吧!

首先,我們先來看一下 CC_MD5 的組成, CC_MD5 原始的函式如下:

extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)

前面有提到,要將字串計算出 MD5 雜湊值,要使用 CC_MD5 這個函式,在使用 CC_MD5 前,必須先匯入「CommonCrypto/CommonDigest.h」,CC_MD5 第一個參數就是我們傳進去的字串,第二個參數是我們傳進去的資料長度,第三個參數則是資料結果。為了方便以後共同使用,所以海芋將 MD5 這個演算法寫成擴充函式,如下:

@interface NSString (MD5)

- (NSString *) getMD5Hash;

@end
#import <CommonCrypto/CommonDigest.h>

@implementation NSString (MD5)

- (NSString *)getMD5Hash {
    unsigned char result[16] = {0};
    CC_MD5([self UTF8String], (CC_LONG) strlen([self UTF8String]), result);
    
    return [NSString stringWithFormat:
            @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
            result[0], result[1], result[2], result[3],
            result[4], result[5], result[6], result[7],
            result[8], result[9], result[10], result[11],
            result[12], result[13], result[14], result[15]
            ];  
}

@end

一般的人可能也有將 NDData 計算 MD5 的需求,那麼也可以將 NSData 寫成擴充,如下:

@interface NDData (MD5)

- (NSString *) getMD5Hash;

@end
#import <CommonCrypto/CommonDigest.h>

@implementation NDData (MD5)

- (NSString *)getMD5Hash {
    unsigned char result[16] = {0};
    CC_MD5(self.bytes, (CC_LONG) self.length, result);
    
    return [NSString stringWithFormat:
            @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
            result[0], result[1], result[2], result[3],
            result[4], result[5], result[6], result[7],
            result[8], result[9], result[10], result[11],
            result[12], result[13], result[14], result[15]
            ];  
}

@end

以上就是將 NSString 和 NSData 轉成  MD5 的方式,相信有在開發 iPhone/iPad 的朋友,或許有一天會有用到吧!

Continue reading