亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Java 中解密在 Obj-c 中加密的數據

如何在 Java 中解密在 Obj-c 中加密的數據

收到一只叮咚 2022-09-14 16:09:53
我正在使用加密數據在ojb-c中加密,并嘗試使用爪哇x在Java中解密。密碼并遇到問題。我最近開始做長塊,并且需要使用對稱加密,并使用非對稱密鑰對加密的AES密鑰。我在解碼時遇到問題。我有 iOS 密鑰 kSec密鑰算法加密PKCS1 適用于與 Java 中的密碼匹配的非對稱數據(“RSA/ECB/PKCS1 填充”)。這將解碼短塊。由于我需要發送更長的塊,并且正在嘗試切換到kSecKey算法MRSA加密OAEPSHA512AESGCM在iOS上加密,它加密得很好,但我找不到在密碼中使用的方法來解密它,并且不明白是否需要在Java的云中以2個步驟完成。黑白-C: 爪哇:    SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA512AESGCM;    NSData* cipherText = nil;    cipherText = (NSData*)CFBridgingRelease(      // ARC takes ownership                    SecKeyCreateEncryptedData(self.pubKey, algorithm,                    (__bridge CFDataRef)data, &error));    try {    cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");         cipher.init(Cipher.DECRYPT_MODE, priv);    byte[] dog = decoder.decode(encString);         dec = cipher.doFinal(dog);        res = new String(dec);    } // handle errors解碼顯然失敗了。所以我的問題分為兩部分。是否有密碼類型可以執行所需的解碼,或者我是否需要分解加密的AES密鑰并首先解密它?如果我需要分解它,那么數據塊的加密AES密鑰部分有多長,如果你知道密碼,那將是太棒了。
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

是否有一種密碼類型可以執行所需的解碼

您可以閱讀密碼文檔。我相信你正在尋找RSA/ECB/OAEPWithSHA-256AndMGF1Padding

我看到名稱與Obj-C名稱不完全匹配,但這是一個通用標準,因此可能值得一試

由于我需要發送更長的塊,并且正在嘗試切換到 kSecKey算法加密OAEPSHA512AESGCM

您可以嘗試搜索“混合加密”。與對稱密碼相比,非對稱密碼非常慢,并且僅用于加密有限數量的數據。

無論如何,某些實現可能會加密更長的數據(對于每個提供2048 o 4096位輸出的256位輸入),Java只會抱怨并停止

因此,適當的加密將是

  • 使用對稱密碼使用拉多姆密鑰(DEK - 數據加密密鑰)加密數據

  • 使用非對稱公鑰加密 DEK

如果 與 不對應(兼容),您仍然可以使用 PKCS#1 1.5 填充(舊填充)和此方法。kSecKeyAlgorithmRSAEncryptionOAEPSHA512AESGCMRSA/ECB/OAEPWithSHA-256AndMGF1Padding

編輯:當使用OAEP時,這個幫助器可能很有用 RSA / ECB / OAEP與SHA-256和MGF1填充,但與MGF1使用SHA-256?


查看完整回答
反對 回復 2022-09-14
  • 1 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號