這是一個難題,我真的很煩,我無法解決它!所以,如果有人有空閒時間,我想在這裏提出一些關於如何解決它的建議!這是字符串Base64嗎?我怎麼知道什麼是使用的編碼?
我使用的軟件將密碼存儲在oracle數據庫中。密碼字段的類型是Varchar2(100個字符)。在我看來,軟件編碼密碼並將編碼的字符串存儲在數據庫中。
我的密碼是'1234',編碼的字符串是'cRDtpNCeBiql5KOQsKVyrA0sAiA ='。數據庫中的所有密碼長度爲28個字符。
我已經分配給自己的難題是找到字符串的編碼和/或加密。我第一次檢查是在Base64編碼
所以這是我在Python第一次測試(空閒):
>>> 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'
所以,我的首先想到的是,這不是Base64編碼的。在查看維基百科(https://en.wikipedia.org/wiki/Base64)後,似乎Base64編碼的字符串不是固定的大小。我的第二個想法是,字符串被加密,然後編碼到Base64,這就是爲什麼我得到奇怪的解碼字符串。
任何想法?
可能是sha1 hash的base64編碼爲len(base64.b16encode(base64.b64decode('cRDtpNCeBiql5KOQsKVyrA0sAiA =')))```40`? – 2010-11-30 10:14:32
我想知道將SHA1哈希解密爲密碼是多麼困難(因爲我知道所有約束條件(最小長度,最大長度,阿爾法,首都,數字,特殊字符等)......)也許我應該問另一個問題! :) – 2010-11-30 11:22:15
丹我不明白你爲什麼使用b16encode,你能解釋一下嗎? – 2010-11-30 11:23:24