加密数据统一
- 一般前后台数据交互的时候需要进行数据加密
参与的第一个项目服务器.iOS.android 采用 aes+256+cbc 的方式来交互 .
- ioS端解密的时候遇到的比较坑的地方是什么?
思路当然与其反过来就行了.于是对 密文解密 拿到加密的json字符串
但是在拿服务器加密的数据值时进行base64解码的时候,始终解码失败
特别恶心.查询了下api才发现
解码时不能写0照着网上的写,需要写
NSDataBase64DecodingIgnoreUnknownCharacters
估计原因是value 中有特殊字符串转义符的原因
NSString *value = @"IvSVadxTjk+33XySWPSyXn0ANsGHxT1pJ62jrj\\/MO5FvL3Oi7bckX4HNNGtpGhqBQ2i9NMkxVJA9J2cPs\\/3UP00guHN\\/t83+82pO5txTqWU=";
NSData *decodedata = [[NSData alloc] initWithBase64EncodedString:value options:NSDataBase64DecodingIgnoreUnknownCharacters];//当有特殊字符的时候需要用这种才能正确解密
NSString *key = @"tCptz1sCsdv+5A8/heOy+J99XsQoo2xWwgWrcMX0rX4=";
NSData *keydecodedata = [[NSData alloc] initWithBase64EncodedString:key options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSString *iv = @"9R4baHuhYNiYmN3D3w19dA==";
NSData *ivdecodedata = [[NSData alloc] initWithBase64EncodedString:iv options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSData *decrytor = [FBEncryptorAES decryptData:decodedata key:keydecodedata iv:ivdecodedata];
NSLog(@"%@",[[ NSString alloc] initWithData:decrytor encoding:NSUTF8StringEncoding]);```