rsa加密的约束和限制

RSA加密存在文本长度限制、秘钥要求和填充模式等约束。为解决长度限制,可采用对称加密预处理。不同填充模式下,如pkcs#1填充允许的最大明文长度为117字节。PEM文件是DER格式经过Base64编码,使用ASN.1数据结构描述。Python实现RSA无填充加密时,需注意安全问题,还可以通过使用向量增强密钥安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rsa加密存在如下的约束的:
1.加密的文本长度不能太长;
2.秘钥必须是16的倍数的;
3.需要结合填充模式才能保证每一次生成的密文是不一样的;
4.对应的是非对称加密的,存在公钥和私钥的。公钥和私钥中都包含右加密的秘钥的。这个可以构建出来公钥和私钥的联系的,从而实现非对称加密的。
如何摆脱对于加密文本长度的限制,可以采用如下的方式的:对明文使用对称加密的方式来进行加密操作的,这个整体的长度就减少了很多,大概是100多的样子的,从而满足了对于文本长度的限制了。1024/8=128
对于不同的填充方式而言:
1.noPadding模式不安全
2.pkcs#1的padding的填充长度是11的,所以明文长度最大对应的是117个字节的。
pem秘钥文件的数据,对应的其实是der格式对应的进行了base64格式的编码操作的。pem进行base64解码操作之后对应的就是der格式的。
其中pem采用的是ASN.1的数据结构来描述的。
编程语言的执行首先会形成语法树的,后续的会针对语法树进行优化操作和管理实现的。

python下面实现nopadding数据加密操作:
引用:https://blog.youkuaiyun.com/weixin_42489404/article/details/98024121
import rsa
import base64
from Crypto.PublicKey import RSA

def zfillStrToBin(s):
b=bytes(s.encode())
for i in range(128-len(b)):
b+=b’\0’
print(len(b))
return b

class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值