前后台加密数据AES的统一

加密数据统一

  • 一般前后台数据交互的时候需要进行数据加密
    参与的第一个项目服务器.iOS.android 采用 aes+256+cbc 的方式来交互 .
前后台加密数据AES的统一_第1张图片
图片.png
  • 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]);```

你可能感兴趣的:(前后台加密数据AES的统一)