iOS,Android,Jave后台AES加密解密

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完全够用了.

 

 

 

 

 

原文地址:https://www.cnblogs.com/xzjxylophone/p/5462673.html