2016-03-14 25 views
-2

我正在開發一個android應用程序,並且在其中我想使用加密。基本上我想爲此目的加密文件,但我擔心加密會增加文件的大小。所以你可以幫我告訴我,如果我加密一個1 MB的文件,它的大小將在加密之後變成什麼樣子。我將使用java進行編程。使用RSA算法加密後,1 MB文件的大小是多少

+2

爲什麼不試試並讓我們知道? –

+1

它會大於1 MB,除此之外,準確答案取決於消息。 –

+0

感謝克拉克的回答,但我想介紹我的想法,目前我現在還沒有實施。艾略特也感謝你,但我不明白你的意思是什麼「信息」?請澄清。 –

回答

0

RSA通常不用於加密數據,它非常慢,加密數據的大小小於密鑰大小。除非需要單獨的加密和解密密鑰,否則不使用RSA。由於RSA密鑰大小範圍從512位到4094位,數據大小不會容納1MB。

取而代之,對稱加密(如AES)用於加密數據。

由於AES是分組密碼,因此需要將加密數據填充到塊大小的多倍,即AES中的16字節,因此加密後的數據長度不會小於輸入數據長度, 16個字節。

+0

謝謝你的回答zaph。你能建議我使用一些算法來代替RSA來加密和存儲文件嗎? –

+0

是的,如答案:AES(高級加密標準)。這是目前對稱加密的最佳實踐和主力。請參閱Java [Class Cipher](https://docs.oracle.com/javase/7/docs/api/javax/crypto/Cipher.html),有幾個關於SO的示例。或者使用一體化安全解決方案[JNCryptor](https://github.com/RNCryptor/JNCryptor),您確實需要的不僅僅是原始加密。 – zaph

+0

好的zaph謝謝你的回答,你做了很多幫助。 –