"गलत पैडिंग" का मतलब न केवल "लापता पैडिंग" हो सकता है, बल्कि यह भी माना जा सकता है कि "गलत पैडिंग" है।
यदि सुझाव दिया जाता है कि "पैडिंग जोड़ना" विधियाँ काम नहीं करती हैं, तो कुछ अनुगामी बाइट्स निकालने का प्रयास करें:
lens = len(strg)
lenx = lens - (lens % 4 if lens % 4 else 4)
try:
result = base64.decodestring(strg[:lenx])
except etc
अपडेट: पैडिंग को जोड़ने या अंत से संभवतः खराब बाइट्स को हटाने के आसपास किसी भी तरह की फिडिंग को किसी भी व्हाट्सएप को हटाने के बाद किया जाना चाहिए, अन्यथा लंबाई गणना परेशान होगी।
यह एक अच्छा विचार है यदि आपने हमें डेटा का एक (छोटा) नमूना दिखाया है जिसे आपको पुनर्प्राप्त करने की आवश्यकता है। अपना प्रश्न संपादित करें और के परिणाम को कॉपी / पेस्ट करें print repr(sample)
।
अद्यतन 2: यह संभव है कि एन्कोडिंग एक url-safe तरीके से किया गया हो। यदि यह स्थिति है, तो आप अपने डेटा में माइनस और अंडरस्कोर वर्ण देख पाएंगे, और आपको उपयोग करके डिकोड करने में सक्षम होना चाहिएbase64.b64decode(strg, '-_')
यदि आप अपने डेटा में माइनस और अंडरस्कोर कैरेक्टर नहीं देख सकते हैं, लेकिन प्लस और स्लैश कैरेक्टर देख सकते हैं, तो आपको कुछ अन्य समस्या है, और ऐड-पेडिंग या रिमूवल-क्रॉफ्ट ट्रिक्स की आवश्यकता हो सकती है।
यदि आप अपने डेटा में माइनस, अंडरस्कोर, प्लस और स्लैश में से कोई भी नहीं देख सकते हैं, तो आपको दो वैकल्पिक वर्णों को निर्धारित करने की आवश्यकता है; वे वही होंगे जो [A-Za-z0-9] में नहीं हैं। फिर आपको यह देखने के लिए प्रयोग करना होगा कि उन्हें किस क्रम में 2 के arg में उपयोग करने की आवश्यकता हैbase64.b64decode()
अद्यतन 3 : अपने डेटा "कंपनी गोपनीय" है:
(क) तुम कहते हो तो सामने चाहिए
(ख) हम इस समस्या है, जो अत्यधिक संभावना है क्या अक्षरों के स्थान पर उपयोग किया जाता है से संबंधित होना समझने में अन्य तरीके तलाश कर सकते हैं +
और /
में एन्कोडिंग वर्णमाला, या अन्य स्वरूपण या बाहरी वर्णों द्वारा।
इस तरह के एक एवेन्यू की जांच होगी कि आपके डेटा में गैर-"मानक" वर्ण क्या हैं, उदाहरण के लिए
from collections import defaultdict
d = defaultdict(int)
import string
s = set(string.ascii_letters + string.digits)
for c in your_data:
if c not in s:
d[c] += 1
print d
base64.b64decode(strg, '-_')
? यह एक प्राथमिकता है, जब आप किसी भी नमूना डेटा की आपूर्ति करने की जहमत उठाए बिना, आपकी समस्या का सबसे संभावित पायथन समाधान है। प्रस्तावित "तरीके" DEBUG के सुझाव थे, NECESSARILY ने "हिट एंड मिस" की आपूर्ति की जानकारी की शुद्धता दी।