iOS移动端使用AES加密注意事项

来源:互联网 发布:护眼有什么软件 编辑:程序博客网 时间:2024/06/05 19:29

移动端特点

1.需要和后台进行交互

2.本身可以加密解密找到对应的框架很多

例如kelp404写的安全框架,还要AESCrypt

3.不是独立的,需要和后台统一

后台常见

1.java写的后台

2.php写的后台

由于目前主要用的java 所以这里主要说下java部分的内容
java 使用import org.apache.commons.codec.binary.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
这是后端的加密解密使用的包

iOS解密:

                NSData *dd=[str dataUsingEncoding:NSUTF8StringEncoding];                NSData *data2=[GTMBase64 decodeData:dd];                NSString *aesresult=[SecurityUtil decryptAESData:data2];                NSData *jsonData = [aesresult dataUsingEncoding:NSUTF8StringEncoding];                NSDictionary *result = [NSJSONSerialization JSONObjectWithData: jsonData options:0 error:&error];

1.把接收到的字符串进行utf8格式的转换转成nsdata
2.用data在进行base64的解操作
3.进行AES解密 返回一个字符串类型
4.在把这个字符串转换成utf8格式的nsdata
5.用这个nsdata进行json解析,解析成字典形式
之后就是常见的解析和本地UI更新的操作过程了

这里我附上我用上的SecurityUtil工具类
工具类地址

注意事项:

解密是加密的逆过程
如本文中是java先进行aes加密再进行base64加密那么在前端解密的时候正好和它相反,在前端加密的时候是应该和java的顺序保持一致
也就是先尽心aes加密再进行base64解密

备注:

以上观点是实际操作中遇到的问题并进行的总结
总结的注意事项是基本思维模式下进行的,如果你的设计有更复杂的交互那么需要根据具体情况进行具体分析,这里是AES的ECB模式至于其它模式需要使用iv参数量

0 0
原创粉丝点击