记一次AES的解密之旅

某日,群里一位开发者求助关于AES的解密问题,说来也巧,那天我正好好也刚刚调试完一个AES的解密问题,因此想顺手帮他解决下。
问题如下:

NSString *key = @"Q$b4D8cCNM$@O0kd";
NSString *contetntText = @"0v48yhPb+E+Xr0Q5trDIc01Ryy2Y+stlCrPEy0DWYKRcq8Z3prfCSZyBCsekQo9ndAmO1eLAQLrxT4KM4G4Y8R7Kr9UQ3TUo3ntC9e3Cv9EN72sYJCOCUCs8zuheijM/1FmV/E2PccwUuo1Bi4C8kf4QYAHKmRXupJAHiTo3w8s=";

流程:contetntTextbase64解码,keysha256加密,iv值是内容的前16位,具体内容是16位以后的东西。

AES加解密代码

不过链接中的源码不太符合这位朋友的需要,因为偏移量iv需要从接口数据的前16位获取,并且实际内容是16位以后。于是对源码进行修改,修改位置为:
这里写图片描述
这里写图片描述
这里主要涉及到NSDatabytes之间的转换

  • iv:获取前面16位的长度,即 iv = [[NSData alloc] initWithBytes:[self bytes] length:16];
  • 实际内容从16位开始,即
    Byte *dataByte = (Byte *)[self bytes];
    /*定义一个byte固定长度的数组*/
    Byte byte[[self length] -16];
    /*获取第16位以后的byte*/
    memcpy(&byte,&dataByte[16],[self length] - 16);
    *status = CCCryptorUpdate( cryptor, byte, (size_t)[self length] - 16, buf, bufsize, &bufused );

    这样修改后,再调用AES的解密方法就可以了,有兴趣的可以试试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值