Android端RSA加密,服务端无法解密的一个坑

本文探讨了Android应用中RSA加密数据时遇到的问题,服务端无法解密的原因在于Android系统默认使用"RSA/None/NoPadding"填充方式,而标准JDK采用"RSA/None/PKCS1Padding"。解决填充方式差异后,还需注意RSA加密的数据长度限制,不能超过密钥长度的特定值,否则会抛出"IllegalBlockSizeException"异常。文中提供了RSA签名和加解密的相关代码示例。

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

在实际工作中,Android端和后端进行RSA报文加密操作时,发现密钥正确的情况下,Android端加密的数据,后端死活不能解密,最后发现是RSA操作的填充方式不对。

android系统的RSA实现是"RSA/None/NoPadding",

而标准JDK实现是"RSA/None/PKCS1Padding" ,

这造成了在android机上加密后无法在服务器上解密的原因

这里需要注意:

RSA的填充问题解决之后,还需要注意数据长度要求,

RSA非对称加密内容长度有限制,1024位key的最多只能加密127位数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晒干的老咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值