我正在嘗試使用 RSA 公鑰和私鑰解密和加密消息。當我嘗試閱讀時,PGPObjectFactory.nextObject()我得到null 下面是我的代碼。 Security.addProvider(new BouncyCastleProvider()); InputStream in = PGPUtil.getDecoderStream(new ByteArrayInputStream(encryptedString.getBytes())); JcaPGPObjectFactory pgpFact; PGPObjectFactory pgpF = new PGPObjectFactory(in, new JcaKeyFingerprintCalculator()); Object o = pgpF.nextObject(); // I get this null PGPEncryptedDataList encList; if(o instanceof PGPEncryptedDataList) { encList = (PGPEncryptedDataList) o; }else { encList = (PGPEncryptedDataList) pgpF.nextObject(); } Iterator<PGPPublicKeyEncryptedData> itt = encList.getEncryptedDataObjects(); 相同的代碼正在運行java 1.8,但在 java 1.7 中運行時會出現此問題,我正在使用所有充氣城堡1.63
1 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
以防萬一有人遇到問題,即使嘗試了一切仍然不起作用。
對于我的情況,bit size
默認情況下僅允許,256
因為我的密鑰位大小是2048
其返回null
要解決此問題,請在您的中添加policy.jar
和 ,因為您不需要添加。us-export.jar
$JRE_HOME/lib/secuirty/
java8
如果你想檢查你的java是否允許你的位大小,你可以通過以下方式檢查。
System.out.println( javax.crypto.Cipher.getMaxAllowedKeyLength("AES"));
添加回答
舉報
0/150
提交
取消