2015-06-11 24 views
0

我使用加密RSA的純文本和轉換該值爲Base64 string.But在解密我改變了的base64字符串,並試圖解密......它給我相同的原文返回。 有什麼不對嗎?原始Base64編碼值進行編輯,但它仍然是給正常人一樣串

原始明文:007189562312 輸出Base64的字符串:VfZN7WXwVz7Rrxb + W08u9F0N9Yt52DUnfCOrF6eltK3tzUUYw7KgvY3C8c + XER5nk6yfQFI9qChAes/czWOjKzIRMUTgGPjPPBfAwUjCv4Acodg7F0 + EwPkdnV7Pu7jmQtp4IMgGaNpZpt33DgV5AJYj3Uze0A3w7wSQ6/tIgL4 =

改變的Base64的字符串:VfZN7WXwVz7Rrxb + W08u9F0N9Yt52DUnfCOrF6eltK3tzUUYw7KgvY3C8c + XER5nk6yfQFI9qChAes/czWOjKzIRMUTgGPjPPBfAwUjCv4Acodg7F0 + EwPkdnV7Pu7jmQtp4IMgGaNpZpt33DgV5AJYj3Uze0A3w7wSQ6/tIgL4 = 55

請解釋。謝謝。

回答

1

我假設你問是否解密時改變密文應該扔了一個錯誤。它看起來像修改後的字符串只在結尾添加兩個字符,否則是相同的字符串。

你的基地,64庫解析基地64個數據時,可能使一些合理的假設。 Base 64通過將3個字節編碼爲4個字符而工作。如果最後數據長度不是3的倍數,則必須填充。由該=在編碼字符串的末尾信號控制。

這也意味着,在分析過程中,該庫知道填充字符是在端部和停止解析那裏。如果改變出現在字符串的末尾,那麼編碼的密文不會有效改變。

+0

感謝答覆...我嘗試在中間追加額外的字符...但它仍然是能夠解密值...任何建議? – R23

+0

不,這沒有任何意義。如果你改變密文(在中間),那麼解密結果將至少與原始明文不同。根據實現,它也應該拋出一個錯誤,因爲填充無效。 –

相關問題