在实际工作中,Android端和后端进行RSA报文加密操作时,发现密钥正确的情况下,Android端加密的数据,后端死活不能解密,最后发现是RSA操作的填充方式不对。
android系统的RSA实现是"RSA/None/NoPadding",
而标准JDK实现是"RSA/None/PKCS1Padding" ,
这造成了在android机上加密后无法在服务器上解密的原因
这里需要注意:
RSA的填充问题解决之后,还需要注意数据长度要求,
RSA非对称加密内容长度有限制,1024位key的最多只能加密127位数