Php AES加密、解密与Java互操作的问题
2013-12-22 11:24
896 查看
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
问题:使用Java默认的AES加密方式(Cipher.getInstance("AES"))并对加密后结果进行Base64编码,这样php(http://phpaes.com/使用这里免费的AES实现版本
)里可以成功进行解密。而在Php加密后的字符串无法在Java中成功解密。
1.Java中AES加密与解密默认使用AES/ECB/PKCS5Padding模式;
2.php中的AES算法实现使用AES/ECB/NoPadding
要注意特定的Padding实现跟算法的blockSize有关,这里php的blocksize是16。在php的aes加密前先对源字符串进行Padding,问题得到解决。
前面提到Java默认的AES加密在php 的上述aes实现中可以成功解密。其实该php解密虽然看上去是成功的,其实里面还是有些问题的。因为解密出来的字符串因为Java端加密时会padding操作,php解密以后padding的字符没有被去掉导致会出现问题。因此解密时需要removePaddingStr才能得到原始的字符串。
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
问题:使用Java默认的AES加密方式(Cipher.getInstance("AES"))并对加密后结果进行Base64编码,这样php(http://phpaes.com/使用这里免费的AES实现版本
)里可以成功进行解密。而在Php加密后的字符串无法在Java中成功解密。
1.Java中AES加密与解密默认使用AES/ECB/PKCS5Padding模式;
2.php中的AES算法实现使用AES/ECB/NoPadding
要注意特定的Padding实现跟算法的blockSize有关,这里php的blocksize是16。在php的aes加密前先对源字符串进行Padding,问题得到解决。
前面提到Java默认的AES加密在php 的上述aes实现中可以成功解密。其实该php解密虽然看上去是成功的,其实里面还是有些问题的。因为解密出来的字符串因为Java端加密时会padding操作,php解密以后padding的字符没有被去掉导致会出现问题。因此解密时需要removePaddingStr才能得到原始的字符串。
相关文章推荐
- Php AES加密、解密与Java互操作的问题
- 关于PHP与Java AES加解密互通的Padding问题
- java and php aes相互加密解密。
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- php与java通用AES加密解密算法
- PHP、Java、.Net和Javascript的AES加密解密实现
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- JAVA和PYTHON同时实现AES的加密解密操作---且生成的BASE62编码一致
- PHP开发过程中AES加密解密问题 js前端AES加密,PHP解密
- JAVA与PHP之间进行aes加密解密
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- php aes 加密解密可与java对接
- PHP--JAVA AES(ECB)加密解密
- java/php对应的AES/CBC/PKCS5Padding模式 加密解密
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]
- 对称加密算法AES------使用AES算法对文件进行加密/解密的操作(JAVA)
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]
- java和php通用的AES加密解密
- java实现AES加密(解决中文解密后乱码问题,解决传输字符串后解密报错的问题)
- Android-Ios-Php-Java AES加密解密