AES256 在iOS和Android上的相关代码:
http://www.tuicool.com/articles/RVFbmmU
里面可以下载相关的代码.
我们遇到的问题是:
把Android的代码移动到Java 后台出现无法加密.
遇到如下的2个问题
1. no cipher getinstance support for AES/CBC/PKCS7Padding
解决方案: http://www.codeweblog.com/java-%E4%BD%BF%E7%94%A8aes-cbc-pkcs7padding-%E5%8A%A0%E8%A7%A3%E5%AF%86%E5%AD%97%E7%AC%A6%E4%B8%B2/
2. AES256无法加密(也许是Java环境问题)
解决方案: 把AES256换成AES128
相关代码:
iOS代码:(我重新优化了相关iOS代码放到github上了)
https://github.com/xzjxylophone/RXCategory
在NSString+RXUtility中:
- (NSString *)rx_transform_AES128EncryptWithKey:(NSString *)key;
- (NSString *)rx_transform_AES128DecryptWithKey:(NSString *)key;
Java代码:(适用于Android和Java后台)
在ASE.java中把下面的
private final int KEY_LENGTH = 256;
中的256改成128,这样就可以让iOS,Android和Java后台都保持一致了.
AES128 和 AES256的区别
http://blog.csdn.net/newizan/article/details/45461347
这样就差不多了.用128完全够用了.