RSA加密長度限制問題


RSA加解密中必須考慮到的密鑰長度、明文長度和密文長度問題。明文長度需要小於密鑰長度,而密文長度則等於密鑰長度。因此當加密內容長度大於密鑰長度時,有效的RSA加解密就需要對內容進行分段。

這是因為,RSA算法本身要求加密內容也就是明文長度m必須0<m<密鑰長度n。如果小於這個長度就需要進行padding,因為如果沒有padding,就無法確定解密后內容的真實長度,字符串之類的內容問題還不大,以0作為結束符,但對二進制數據就很難,因為不確定后面的0是內容還是內容結束符。而只要用到padding,那么就要占用實際的明文長度,於是實際明文長度需要減去padding字節長度。我們一般使用的padding標准有NoPPadding、OAEPPadding、PKCS1Padding等,其中PKCS#1建議的padding就占用了11個字節。

這樣,對於1024長度的密鑰。128字節(1024bits)-減去11字節正好是117字節,但對於RSA加密來講,padding也是參與加密的,所以,依然按照1024bits去理解,但實際的明文只有117字節了。

所以如果要對任意長度的數據進行加密,就需要將數據分段后進行逐一加密,並將結果進行拼接。同樣,解碼也需要分段解碼,並將結果進行拼接。

<DemoCode1>OmdlcXbjdyxIhrRX+VmlQf8bb/wNSOijvj9LLwDTzeLZIsBmmX+Oh6libYNVD8afw7/Hu+uIw1eJB0SW+ugEU5VZHxYivTrUGmt2ybI3F08vSK73n2Nl7WgBd3LlZZ2NhqP5jKrf0ZWbc2II1eNSxW4if1Mj99nhS1vPdjA9E4JIDH6hK0gWymsw/QkmxuQj/qaL8UUZB6XDonS6NqrMNEksPdXK3gEUZkwGiHAGP8RmMvtrvt8jCYdNFoVqvXq9dVabZE4siIaslghWzRirz1SrqnkdtUsqnau1MetZWaxxSKkEOTSfzz98q7wBPS9cC5lImlDRnZL4IAM8enac5g==</DemoCode1>

<DemoCode2>LUXM8Px64ocCVCUXsxJidbkdsiKcUNkXquefVrFUrWrBh1OBoRfN3M2JyuCtkD6HUFS4f0B/mlzDVtU3OseQgK4ga6NHKrihdWjoPz5dvoK4vIj79t5r5ObEj2Xau/jp5559XI+vArGF5dJkRzJ7eA5Tt2taGxAhNnQuyhYBWy8DWYdDWedtcKr6YVZGhz7VasLNPu67MgwzWjxt0HeLROG9pELzBAZ7TzJgEihEbsnOZplUrsuquVbgalu4IWoM/75udC++GOwFvVrPBpTAbZqMTKau06bTPoa6NOTV1s38YfYdlp86HDNOSV2LvCqrKkpFaN+JRbdrZlQkRl9g9A==</DemoCode2>

 <DemoCode3>FYuRcnIK2LwdtqC9aKI5920G1dZv7L4h92+E0Hz9QBOWuqYU4AUI0zQMeYTGiRQmOyY5xP4IO8A8jRG8WnDfGxQ1Ulj3MU3ZqFr9LPuWs43z/fi3dARRNCsiGt1J7L/9RGPYCmxpsVljm0/NctZGXdKyL5VJ4zBk3i7fkdDUSf4Tk+YmQXmWUpDgq2A/IFHHrJnRxaiG7g2euo71jd99WKcbG4s+EjsEtF5Ub5K1Xpz4JR5sSqDEtbZh5bDkRmhQva5HM1GHm0ZRa+AFLH2JIudhIxPtjp7ZYm1vRbSqXmwvFAc9JlzU77kq9+lskx+uKGXm9AFVuXvGWJ45Y3KcAw==</DemoCode3>

 <DemoCode4>PagboRkwuHFquqWF2+lLDPsi2lFroG1fMyxlykm50NTAIQ5d9l9QiJNvfN2UrKE4XBvejZXBcRpAd7kn/MSLDwyYRyy4VGyZW7Mo6huHUzQq1qYxA9LTIrnfID6zlqXH4197fxzwf/tO22iWdJt5hCLMVCnVGDPhbSdtqEZYea72w64MNxY12B9NGqDEYJ2CCmc93zjSvbXtlYDiu+96LLrMX8AYtBf6oVnsTJEqB2nVP2ZD141IjkeXYqrwEId86Mef7QSjRsV4EyyoEs9hq/siFU6hIloCIwEQQvwckxHCtotSJfYIDVxa15tm0wgkqvm3jKpMkEhFadyRJhbYkA==</DemoCode4>

 <DemoCode5>MIlDryG7BZ6JSqLDo65G0DYWLZNUM9iVo9/4jcuzYCpmEN0iTZvsIUnp2X7HGomCkl2+fsMJsz3klYb/dd7gP1oSa4fTJ/P+O2pzUoiOcCsfvgphNEkuPPodx9qOhAxCe3In3b1D6DmV9soUbBMH4h+VqVdi9CzoQcBWLR8Oy1o1Gf48FmconcS1sOGaCumdPv0mQEM/4uBNoq4Wr+IVGwq84YejmrEDlbaGVOOqYdMT0BWOpZO989IsHbq3tixjhTS31xLviR0joBq0vlP3xYHJSKGc3Y4c/3j/VgRZruXPwrdsSjgbm/aDibu1Fn3ljUeBxqHOAxytQ3OXy2UNVQ==</DemoCode5>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM