我試圖加密一個字符串從Java到Python,使用庫Bouncy Castle J2ME在客戶端和Python M2Crypto在另一端。Java到Python RSA
一切都很好,我可以正確解密,但填充是問題。
的M2Crypto LIB給我(據我可以告訴)只有這些填充方案: no_padding = 3 pkcs1_padding = 1 sslv23_padding = 2 pkcs1_oaep_padding = 4
雖然充氣城堡J2ME僅規定: NoPadding OAEPWithAndPadding PKCS5Padding SSL3Padding
所以,我可以用NoPadding在兩者之間,但隨後即得到解密後生成的字符串都充滿了混亂的字符秒。
我真的很想弄清楚填充,但我不知道如何在填充方案之間進行轉換/如果這甚至是可能的。
請幫我解決這個問題,這真讓我傷心!
我想我是。經過幾個小時的絕望之後,我發佈了這篇文章,看看這是一件相當簡單的事情。 事實證明,如果我用「BC」提供程序使用字符串「RSA/ECB/PKCS1Padding」,它可以通過python使用PKCS1讀取。歐洲央行是必需的,否則到處都是垃圾人物。 此外,我必須確保密鑰採用DER格式,並使用X509EncodedKeySpec讀取它以便讀取。 DER = PEM減去標題(---- BEGIN ...),並對base64進行解碼。 – 2009-11-24 18:16:52