2012-09-30 7 views
14

जीएनयू/लिनक्स सिस्टम पर/etc/छाया पर उपयोग की जाने वाली एन्क्रिप्शन विधि कौन सी है? मैं व्यक्तिगत उद्देश्य के लिए एक छोटा सा प्रोग्राम लिखना चाहता हूं जो एक ही एपीआई का उपयोग करता है, लेकिन फिलहाल मुझे नहीं पता कि कहां से शुरू करना है।/etc/छाया पर उपयोग की जाने वाली एन्क्रिप्शन विधि कौन सी है?

अग्रिम धन्यवाद

+0

साथ संकलन चाहिए समाधान, आदमी 3 तहखाने है MD5। मैं जानना चाहता था कि किसी को इन एपीआई के साथ अनुभव है या नहीं !!! – b3h3m0th

+0

यह मेरे उद्देश्य के लिए उपयोगी है: http://stackoverflow.com/questions/2565427/c-crypt-function – b3h3m0th

+0

बहुत जानकारीपूर्ण http://stackoverflow.com/questions/8794588/public-key-implementation-in-c- लिनक्स के लिए? rq = 1 – b3h3m0th

उत्तर

32

crypt(3) समारोह का उपयोग करें। ग्लिब पर, विधि का उपयोग नमक पर निर्भर करता है, यदि यह शुरू होता है:

  • $ 1 $: यह एमडी 5 का उपयोग करता है।
  • $ 5 $: यह SHA-256 का उपयोग करता है।
  • $ 6 $: यह SHA-512 का उपयोग करता है।
  • $ 2 ए $: यह blowfish का उपयोग करता है, हर जगह समर्थित नहीं है।
  • अन्यथा यह डीईएस का उपयोग करता है।
+0

बहुत धन्यवाद। आदमी 3 क्रिप्ट वास्तव में गुप्त है !!! – b3h3m0th

+0

पासवर्ड सादे टेक्स्ट में "एन्क्रिप्ट" करने के लिए प्रयुक्त विधि नमक पर निर्भर नहीं है! $ S की पहली जोड़ी के बीच की स्ट्रिंग "एन्क्रिप्शन" विधि को इंगित करती है, $ s की दूसरी जोड़ी के बीच की स्ट्रिंग उस "एन्क्रिप्शन" विधि के लिए वास्तविक नमक है। – fpmurphy1

+2

@fpmurphy: 'crypt()' के दूसरे पैरामीटर को 'नमक' कहा जाता है, और इसमें एक एन्क्रिप्शन एल्गोरिदम पहचानकर्ता और वास्तविक नमक शामिल है। – ninjalj

6

एकाधिक एन्क्रिप्शन तरीकों glibc में उपलब्ध हैं, को देखने के आदमी 3 तहखाने, Glibc नोट्स अनुभाग: http://manpages.courier-mta.org/htmlman3/crypt.3.html

जब एक मौजूदा पासवर्ड की पुष्टि करने के लिए, बस के रूप में नमक एन्क्रिप्टेड रूप से पारित; केवल प्रारंभिक $ आईडी $ नमक भाग का उपयोग किया जाएगा। नया पासवर्ड बनाते समय, जो कुछ भी आपको चाहिए उसे आईडी शुरू करें और कुछ यादृच्छिक पात्रों को नमक में रखें।

+0

यह बहुत मुश्किल प्रतीत नहीं होता है। बहुत धन्यवाद – b3h3m0th

2

तहखाने()

#include <stdio.h> 
#include <stdlib.h> 

#define MAX_STR 256 
#define MAX_SALT 12 

int main(int argc, char *argv[]) { 
    char password[MAX_STR]; 
    char salt[MAX_SALT]; 

    printf("salt: "); 
    scanf("%s", salt); 

    printf("password: "); 
    scanf("%s", password); 

    printf("Encrypt '%s' : '%s'\n", password, crypt(password, salt)); 

    return(EXIT_SUCCESS); 
} 

संकलित कार्यक्रम के साथ बुनियादी उदाहरण:

$ gcc -lcrypt test.c 
+0

हेडर के बारे में जानकारी: http://stackoverflow.com/questions/6127921/is-the-crypt-function-declared-in-unistd-h-or-crypt-h – b3h3m0th

-1

मैं `तहखाने '

तो मुझे लगता है

को

अपरिभाषित संदर्भ प्राप्त कि आप

$ gcc test.c -lcrypt

संबंधित मुद्दे

 संबंधित मुद्दे