簡體   English   中英

RSA在iOS中加密並在Java服務器中解密不起作用

[英]RSA encrypt in ios and decrypt in java server does not work

我有一個android項目並使用RSA加密,它在android客戶端和java服務器之間正常運行。 公鑰和私鑰是使用android API生成的。 現在,我想在IOS項目上使用相同的RSA並使用相同的密鑰。 不幸的是,它不能很好地工作。 我可以僅在IOS客戶端上進行加密和解密,這是正確的。 在Java服務器上解密時,出現錯誤。 使用kSecPaddingPKCS1進行加密,並使用RSA / NONE / OAEPWithSHA1AndMGF1Padding進行解密。

參考:1. RSA:在iOS中加密,在Java中解密 2. 目標C中的RSA實現

誰能幫忙,謝謝。

我可以看到(由於我有限的密碼學知識)您正在使用不同的算法進行加密和解密,並且它們不兼容。

用建議的第一個鏈接的答案將kSecPaddingOAEP更改為kSecPaddingPKCS1

因此,您說可以在iOS客戶端中進行加密和解密,它表示您的公鑰和私鑰正確。 因此,問題出在客戶端和服務器之間。 我曾經在我的項目中做到過這一點,所以我可以為您指出一點。

1.RSA密鑰有一些不同的地方。 就像512位,1024位一樣。 您應該檢查一下.iOS中的加密與Java服務器中的解密使用相同的位。

2.您是否使用其他加密。 與base64一樣,您還需要檢查Java服務器是否使用相同的樣式。

這是相關的文章: http : //www.jianshu.com/p/db85399e8a76希望能對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM