RSA加密长度限制问题

news/2024/11/29 12:38:01/

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>

转载于:https://www.cnblogs.com/isyaya/p/11073149.html


http://www.ppmy.cn/news/494621.html

相关文章

C语言0长度数组(可变数组/柔性数组)详解

CSDNGitHubC语言0长度数组(可变数组/柔性数组)详解AderXCoding/language/c/zero_length_array 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请注明出处, 谢谢合作 1 零长度数组概念 众所周知, GNU/GCC 在标准的 C/C 基础上做了有实用性…

CTF中字符长度限制下的命令执行 rce(7字符5字符4字符)汇总

七字符rce 源码 <?php highlight_file(__FILE__); if(strlen($_GET[1]<7)){echo strlen($_GET[1]);echo <hr/>;echo shell_exec($_GET[1]); }else{exit(too long); } ?>#写入语句 <?php eval($_GET[1]); #base64编码后 PD9waHAgZXZhbCgkX0dFVFsxXSk7 #…

java uuid 长度处理

直接上代码 package test.uid;import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import java.util.Map;/*** description: <br/>* package test.AA.java* author YangPu* date 2016年11月3日 下午3:38:34*/ public class AA {private…

Lua中获取字符串长度

偶然的情况下&#xff0c;需要用Lua代码获取字符串的长度&#xff0c;结果发现结果和自己想象的不一样&#xff0c;一个汉字算两个英文字符的时代已经快过去了&#xff0c;一个中文字符打印出来的长度为3&#xff0c;引起了我的好奇&#xff0c;查找资料了解了具体原因 不同的…

数组与字符串长度 — C语言经典方法

阅读提示&#xff1a;文章比较冗长&#xff0c;若为了快速做题&#xff0c;请用常规方法sizeof和方法六计数器即可&#xff0c;其他对完成作业都没什么特别的意义&#xff0c;最后感谢您的点击与阅读&#xff5e; 文章目录 数组与字符串1 数组1.1 静态数组&#xff08;1&#x…

mysql int类型需要指定长度_mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?...

原先对mysql不太理解,但也没有报错。但理解的不够深入。这次补上。 原来以为int(11)是指11个字节,int(10)就是10个字节。我错了。 http://zhidao.baidu.com/link?url=puYWaGBQNKNHgffO5kdvXshF3KmX8OuB4Mor3HXapbNHa8m1CdlF8PJTqVuKa1eKcEd6Bv2NKUr3I-KJr5-7ISLhBsmf17Lu69v…

CSS 长度单位详细总结

一、CSS中的长度单位&#xff1a; 在CSS中以不少值是以长度作为值的&#xff0c;盒子模型的属性就是一些明显的值属性&#xff1a;width、height、margin、padding、border。除此之外还有很多的css属性的值同样也是长度值&#xff0c;像偏移量offset、box-shadow的大小或字体大…

循环节长度以及循环节

循环节长度 两个整数做除法&#xff0c;有时会产生循环小数&#xff0c;其循环部分称为&#xff1a;循环节。 比如&#xff0c;11/136>0.846153846153….. 其循环节为[846153] 共有6位。 这是一道蓝桥杯的题目&#xff0c;试卷上是一个填空题&#xff0c;思路就是不断…