javax.crypto.IllegalBlockSizeException:數據長度不能超過53個字節我知道這是因爲RSA算法只能加密RSA密鑰長度最大字節長度的數據(以位爲單位)除以8減十一填充 字節,即最大字節數=密鑰長度的比特/ 8 - 11.javax.crypto.IllegalBlockSizeException
這裏使用的是512密鑰大小,所以它不允許超過53.但我需要保持512 bit密鑰,但加密超過53字節是有可能的。
javax.crypto.IllegalBlockSizeException:數據長度不能超過53個字節我知道這是因爲RSA算法只能加密RSA密鑰長度最大字節長度的數據(以位爲單位)除以8減十一填充 字節,即最大字節數=密鑰長度的比特/ 8 - 11.javax.crypto.IllegalBlockSizeException
這裏使用的是512密鑰大小,所以它不允許超過53.但我需要保持512 bit密鑰,但加密超過53字節是有可能的。
是的,沒有。你不能用RSA加密,但你可以用下面的一個去:
不要用對稱加密算法並通過與RSA加密密鑰的通常的做法。例如,發送數據d到另一個人的公共密鑰PK:
另一側開放PK(K),以獲得K,和開放的K(d),以獲得D.
的數據分割成小塊並單獨加密每一個。
第一種方法主要有兩個原因一個更好的一個:
(3.必須有一個原因,PGP是如此普遍?)
你爲什麼不採用包絡?生成對稱密鑰(AES),使用該AES密鑰對數據進行加密,然後使用公共RSA密鑰對AES密鑰進行加密。發送加密的數據以及加密的AES密鑰。然後使用專用RSA密鑰解密AES密鑰,然後使用它解密其餘數據。這將允許您加密任何大小的數據。
是否有可能使用其他非對稱算法如DSA加密大塊數據DSA – Lalchand 2011-05-09 15:15:02
DSA是一種簽名算法,而不是加密算法,因爲我知道的所有加密算法都基於相同的數學原理,所以是不可能的,但請在兩分鐘內看到我編輯的答案。 – MByD 2011-05-09 15:18:07
關於以前的評論 - 我忘了寫 - 所有** public **加密算法.. – MByD 2011-05-09 15:33:32