Java RSA3加密时因编码不同导致结果不同
来源:互联网 发布:芜湖网络推广公司 编辑:程序博客网 时间:2024/05/23 14:17
最近遇到一个问题,使用RSA3加密及验证时候,因为我方与客户方工程的编码格式不同,导致我方使用私钥加密后,客户使用公钥解密失败。
最后问题定位到src.getBytes()代码,因我方工程使用GBK编码,src.getBytes()执行时获取默认编码为GBK(即src.getBytes("GBK")),而客户方工程使用UTF-8编码,解密执行src.getBytes()时获取默认编码为UTF-8(即src.getBytes("UTF-8"))。造成解密校验失败。
解决方法:加密时设置UTF-8编码格式—src.getBytes("UTF-8",如下:
测试(file的默认编码为GBK):
valueT.getBytes():
[48, 50, 48, 49, -49, -62, -75, -91, -77, -55, -71, -90, -93, -84, -74, -87, -75, -91, -76, -90, -45, -38, -77, -28, -42, -75, -42, -48, 50, 48, 49, 55, 48, 56, 48, 49, 49, 49, 49, 50, 48, 53, 56, 56, 51, 51, 48, 48, 54, 55, 54, 52, 55, 85, 78, 68, 69, 82, 87, 65, 89, 50, 48, 49, 55, 45, 48, 56, 45, 48, 49, 32, 49, 49, 58, 49, 50, 58, 48, 54]
valueT.getBytes("GBK"):
[48, 50, 48, 49,-49, -62, -75, -91, -77, -55, -71, -90, -93, -84, -74, -87, -75, -91, -76, -90, -45, -38, -77, -28, -42, -75, -42, -48, 50, 48, 49, 55, 48, 56, 48, 49, 49, 49, 49, 50, 48, 53, 56, 56, 51, 51, 48, 48, 54, 55, 54, 52, 55, 85, 78, 68, 69, 82, 87, 65, 89, 50, 48, 49, 55, 45, 48, 56, 45, 48, 49, 32, 49, 49, 58, 49, 50, 58, 48, 54]
valueT.getBytes("UTF-8"):
[48, 50, 48, 49,-28, -72, -117, -27, -115, -107, -26, -120, -112, -27, -118, -97, -17, -68, -116, -24, -82, -94, -27, -115, -107, -27, -92, -124, -28, -70, -114, -27, -123, -123, -27, -128, -68, -28, -72, -83, 50, 48, 49, 55, 48, 56, 48, 49, 49, 49, 49, 50, 48, 53, 56, 56, 51, 51, 48, 48, 54, 55, 54, 52, 55, 85, 78, 68, 69, 82, 87, 65, 89, 50, 48, 49, 55, 45, 48, 56, 45, 48, 49, 32, 49, 49, 58, 49, 50, 58, 48, 54]
阅读全文
0 0
- Java RSA3加密时因编码不同导致结果不同
- left join 顺序不同导致结果不同
- js位置不同导致结果不同
- Quartz因不同版本导致的异常
- 因tensorflow版本不同导致报错
- eclipse中导入android工程时因源工程java编译环境不同导致编译错误的解决方法
- unix c++ 生成的文件名不同导致结果不同
- glBengin 与 glEnd位置不同导致的不同结果
- ko.mapping.fromJS不同参数导致的不同结果
- fgetws和fread读取不同编码文本文件时的结果
- Java md5加密 控制台传入与web传入参数 结果不匹配 || 相同字符串加密结果不同
- 世界因你不同
- 世界因你不同
- 《世界因你不同》
- “世界因你不同”
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- UE4 C++ 碰撞检测(Overlap)
- NTT(快速数论变换)用到的各种素数及原根
- Struts2学习笔记(八)——类型转换
- Eclipse构建maven项目之Error-1
- 算法:C++实现O(n)复杂度内查找第K大数
- Java RSA3加密时因编码不同导致结果不同
- 网页选项卡(简洁写法)
- Android开发之UI
- Android framework物理按键处理路径
- 快速维护一个排列两边比他大的数字的位置
- Bootstrap基础17——滚动监听scrollspy
- 关于实现在阿里的Antd的Modal上实现动态表的一种思路
- [leetcode]36. Valid Sudoku@Java解题报告
- 交叉引用造成内存丢失?动手试试吧