RSA解密失败:javax.crypto.BadPaddingException : Decryption error
一、由于项目需要,前端把密码用RSA加密后传输到后端,后端进行RSA解密后再与数据库中的密码进行对比,接受到前端传过来的加密后的密码,在进行解密的时候出现错误了:
javax.crypto.BadPaddingException : Decryption error
二、仔细对比了前后端的RSA加密解密的设置,发现是一样的,本来以为是公钥和私钥的问题,换了不少公钥私钥之后还是有问题。然后无意中发现前端传过来的加密后的字符串和后端使用RSA加密后的字符串不一样。详细对比后,发现是字符串中的加号+
变成了空白字符。
前端传过来的加密后的字符串:
Af2bSRu1enQBB2yzOVUEm/ImxycRleTrk4LJnc5OLgHawjFJevVdao44neAi9NhPLSqKDftRI1YZBbPL25pAdA72hykaroR7P/6o0yQ7mPguQPNsIBClLHBo5 w10ojajB3bYG68kvDoVJqsMrss wRkFjktZRssJw7M80Uxw0s=
后端使用RSA加密后的字符串:
Af2bSRu1enQBB2yzOVUEm/ImxycRleTrk4LJnc5OLgHawjFJevVdao44neAi9NhPLSqKDftRI1YZBbPL25pAdA72hykaroR7P/6o0yQ7mPguQPNsIBClLHBo5+w10ojajB3bYG68kvDoVJqsMrss+wRkFjktZRssJw7M80Uxw0s=
对比结果:
三、在接收到加密后的字符串之后,先进行了替换,把空格替换成加号,然后就可以了。加密后的字符串的一些特殊的字符的含义:
- URL 中+号表示空格 %2B
- 空格URL中的空格可以用+号或者编码 %20
- / 分隔目录和子目录 %2F
- ? 分隔实际的 URL 和参数 %3F
- % 指定特殊字符 %25
- #表示书签 %23
- & URL 中指定的参数间的分隔符 %26
- = URL 中指定参数的值 %3D
还有其他的方法可以避免出现这个问题的,详情可以参考文章:
- javax.crypto.BadPaddingException : Decryption error
- RSA解密报 Decryption error
四、总结:如果有疑问可以直接留言评论,如果觉得对你有帮助,可以小小的赞赏一杯奶茶钱,谢谢!!
RSA解密失败:javax.crypto.BadPaddingException : Decryption error相关推荐
- RSA解密时javax.crypto.BadPaddingException: Data must start with zero
解决方法:要在加密后产生的byte数组转成string时要在各byte之间加个标识符,我加了个空格, 然后再根据空格分隔转换回byte数组.如果不加标识符,由于byte值可能是一位到三位,无法知道某一 ...
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
参考:http://blog.csdn.net/rj042/article/details/8196125 单点登录:https://github.com/ebnew/ki4so redis客户端操作 ...
- 微信一键登录解密手机号出现javax.crypto.BadPaddingException: pad block corrupted错误
<button class="weui-btn btn-login" open-type="getPhoneNumber" bindgetphonenum ...
- javax.crypto.BadPaddingException: Data must sta...
为什么80%的码农都做不了架构师?>>> 错误:javax.crypto.BadPaddingException: Data must start with zero RSA是 ...
- exception javax.crypto.BadPaddingException: Given final block not properly padded
exception javax.crypto.BadPaddingException: Given final block not properly padded CreationTime--2018 ...
- javax.crypto.BadPaddingException: Given final block not properly padded解决方案
javax.crypto.BadPaddingException: Given final block not properly padded解决方案 参考文章: (1)javax.crypto.Ba ...
- javax.crypto.BadPaddingException: Given final block not properly padded 解决方法
javax.crypto.BadPaddingException: Given final block not properly padded 解决方法 参考文章: (1)javax.crypto.B ...
- 小程序对encryptedData进行解密报错javax.crypto.BadPaddingException: pad block corrupted
第一次写小程序登陆授权,踩了很多坑.什么用encryptedData.iv.code这些参数去登录,其实只要一个code就够了. 还有各种看不太明白的参数secret.authorization_co ...
- javax.crypto.BadPaddingException: Blocktype ...
1.最近做RSA加密用于增强android客户机与服务器(JavaEE)数据传输的安全性.发现在andorid机器上生成的(密钥对由服务器在windows xp下生成并将公钥发给客户端保存)密码无法在 ...
最新文章
- 高级程序员到底高级在哪里?
- 一键分享(系统所有的软件的分享功能)
- flask-session总结
- 天联高级版客户端_金万维天联高级版服务器安装配置全流程以及客户端登录流程...
- 【强化学习】Policy Gradient原理
- Innodb ibdata数据文件误删,如何恢复
- Dubbo是如何进行远程服务调用的?(源码流程跟踪)
- Asp.net高效导出excel篇之Aspose导出excel
- JAVA的四则运算规则_java四则运算规则
- 从零实现深度学习框架——计算图运算补充
- 在计算机网络GAN代表什么,图解 生成对抗网络GAN 原理 超详解
- 焊接工时简便计算工具_焊接工时定额计算手册.doc
- 水经注叠加cad_相见恨晚的50个CAD技巧
- smarty下载及入门教程
- c语言生成正弦波,方波等mif
- 如何独立开发 APP 赚钱?
- Java Web 网络商城案例演示一、(环境搭建)
- #1文献学习总结---移动边缘计算
- RTMP视频推流功能组件EasyRTMP-HIK DEMO版本运行报错0xc000007b问题排查分析
- Hadoop(二)——HDFS的 I/O 流操作