यह मेरे लिए एक पहेली है और मैं वास्तव में नाराज हूं कि मैं इसे हल नहीं कर सकता! इसलिए, अगर किसी के पास कुछ खाली समय है तो मैं इसे हल करने के तरीके पर कुछ सुझाव यहां देना चाहूंगा!क्या यह स्ट्रिंग बेस 64 है? मैं कैसे बता सकता हूं कि एन्कोडिंग का उपयोग क्या किया जाता है?
मैं ऐसे सॉफ़्टवेयर का उपयोग करता हूं जो एक ऑरैकल डेटाबेस में पासवर्ड संग्रहीत करता है। पासवर्ड फ़ील्ड Varchar2 (100 char) प्रकार का है। ऐसा लगता है कि सॉफ़्टवेयर पासवर्ड को एन्कोड करता है और डेटाबेस में एन्कोडेड स्ट्रिंग स्टोर करता है।
मेरा पासवर्ड '1234' है और एन्कोडेड स्ट्रिंग 'cRDtpNCeBiql5KOQsKVyrA0sAiA =' है। डेटाबेस में सभी पासवर्ड 28 वर्ण लंबा हैं।
जो पहेली मैंने स्वयं को सौंपी है वह स्ट्रिंग के एन्कोडिंग और/या एन्क्रिप्शन को ढूंढना है।
मेरी पहली जांच Base64
पर था तो यहाँ अजगर में मेरी पहली परीक्षा है (निष्क्रिय):>>> import base64
>>> encoded = 'cRDtpNCeBiql5KOQsKVyrA0sAiA='
>>> decoded = base64.b64decode(encoded)
>>> decoded
'q\x10\xed\xa4\xd0\x9e\x06*\xa5\xe4\xa3\x90\xb0\xa5r\xac\r,\x02 '
>>> print decoded
qíᄂО*ᆬ䣐ᄚᆬrᆲ
,
यहाँ मेरी दूसरे टेस्ट है: तो
>>> myString = '1234'
>>> encoded = base64.b64encode(myString)
>>> encoded
'MTIzNA=='
>>> decoded = base64.b64decode('MTIzNA==')
>>> decoded
'1234'
, मेरे पहला विचार यह है कि यह बेस 64 एन्कोडेड नहीं है। विकिपीडिया (https://en.wikipedia.org/wiki/Base64) की जांच करने के बाद ऐसा लगता है कि बेस 64 एन्कोडेड स्ट्रिंग निश्चित आकार के नहीं हैं। मेरा दूसरा विचार यह है कि स्ट्रिंग को एन्क्रिप्ट किया गया था और फिर बेस 64 में एन्कोड किया गया था और यही कारण है कि मुझे अजीब दिखने वाली डीकोडेड स्ट्रिंग मिलती है।
कोई विचार?
वह sha1 हैश का बेस 64 एन्कोडिंग हो सकता है जो 'लेन (base64.b16encode (base64.b64decode (' cRDtpNCeBiql5KOQsKVyrA0sAiA = '))) '' 40' है? –
मुझे आश्चर्य है कि यह डिक्रिप्ट करना ठीक है (ठीक है, यह वास्तव में डिक्रिप्ट नहीं है) SHA1 हैश पासवर्ड में है क्योंकि मुझे सभी बाधाओं (न्यूनतम लंबाई, अधिकतम लंबाई, अल्फा, राजधानियां, संख्याएं, विशेष वर्ण इत्यादि) पता है ... शायद मुझे एक और सवाल पूछना चाहिए! :) –
दान मुझे समझ में नहीं आता कि आप बी 16encode का उपयोग क्यों करते हैं, क्या आप समझा सकते हैं? –