2008-09-22 16 views
6

क्या किसी को एमडी 5/एसएचए 1/आदि दिनचर्या के बारे में पता है जिसे आसानी से जीएलआईबी के साथ प्रयोग किया जाता है (यानी आप इसे एक गियोशनल आदि दे सकते हैं)?एमडी 5 रूटीन जो जीएलआईबी दोस्ताना हैं?

उत्तर

6

का उपयोग फिसलनदार के अंतर्निहित MD5, SHA1, और GChecksum साथ SHA256 कार्यान्वयन। इसमें आईओ स्ट्रीम से चेकसम बनाने के लिए एक अंतर्निहित फ़ंक्शन नहीं है, लेकिन आप 10 लाइनों में एक साधारण लिख सकते हैं, और आपको किसी भी जटिल व्यक्ति को वैसे भी लिखना होगा।

2

आप आम तौर पर पुस्तकालय गोंद सामान खुद ऐसा करने के लिए, जब तक आप एक बहुत अच्छा कारण है है ...

void get_channel_md5(GIOChannel* channel, unsigned char output[16]) 
{ 
    md5_context ctx; 

    gint64 fileSize = <get file size somehow?>; 
    gint64 filePos = 0ll; 

    gsize bufferSize = g_io_channel_get_buffer_size(channel); 
    void* buffer = malloc(bufferSize); 

    md5_starts(&ctx); 

    // hash buffer at a time: 
    while (filePos < fileSize) 
    { 
     gint64 size = fileSize - filePos; 
     if (size > bufferSize) 
      size = bufferSize; 

     g_io_channel_read(channel, buffer); 
     md5_update(&ctx, buffer, (int)size); 

     filePos += bufferSize; 
    } 

    free(buffer); 

    md5_finish(&ctx, output); 
} 
संबंधित मुद्दे