आईफोन पर, सैंडबॉक्स किसी को भी आपके पासवर्ड तक पहुंचने से रोक देगा। डेस्कटॉप पर यह इतना आसान नहीं है।
आपको पासवर्ड को cleartext के बजाय हैंश के रूप में स्टोर करना चाहिए। मेरा मानना है कि इससे आपको कार्यक्षमता प्रभावित किए बिना परिणाम मिलेंगे। एकमात्र ऐसा लगता है कि आप कभी भी करने में सक्षम नहीं होंगे, फिर से क्लीयरक्स्ट पासवर्ड तक पहुंचें - यदि आप इसे ताकत के लिए विश्लेषण करना चाहते हैं या इसे किसी अन्य सेवा पर पास करना चाहते हैं। सामान्य रूप से, हैश कार्यक्षमता बलिदान नहीं करेंगे।
निम्नलिखित कोड rawPassword में एक पासवर्ड लेता है और पासवर्ड में SHA-1 हैश स्टोर करता है।
#import <CommonCrypto/CommonDigest.h>
const char* utf8PasswordRepresentation = [rawPassword UTF8String];
unsigned char * rawHash = malloc(CC_SHA1_DIGEST_LENGTH);
CC_SHA1(utf8PasswordRepresentation, strlen(utf8PasswordRepresentation), rawHash);
NSMutableString* passwordHash = [NSMutableString CC_SHA1_DIGEST_LENGTH*2];
for (int i = 0 ; i< CC_SHA1_DIGEST_LENGTH; i++)
[passwordHash appendFormat:@"%02x" , rawHash[i]];
ध्यान दें कि यहां कोई मेमोरी प्रबंधन नहीं है।
explanation of password hashing के लिए विकिपीडिया प्रविष्टि देखें।
इंटरबेट के आसपास इस कोड के कई संस्करण हैं।
स्रोत
2009-04-15 07:16:29
आपको विशेष रूप से उन्हें एक स्ट्रिंग में स्टोर करने की आवश्यकता क्यों है और लोग उस स्मृति को प्राप्त करने का प्रयास क्यों कर रहे हैं? –