iOS AES128 CBC No Padding加密解密

iOS AES128 CBC No Padding加密解密

ID:39549465

大小:36.00 KB

页数:4页

时间:2019-07-06

iOS AES128 CBC No Padding加密解密_第1页
iOS AES128 CBC No Padding加密解密_第2页
iOS AES128 CBC No Padding加密解密_第3页
iOS AES128 CBC No Padding加密解密_第4页
资源描述:

《iOS AES128 CBC No Padding加密解密》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、最近的项目中数据传输用到加密,项目选择了AES128CBCNoPadding加密方式,PHP和Android方面的代码网上太多了。但是唯独没有iOS的,但是也有别的写法,但不是是AES128CBCNoPadding或者不是CBCNoPadding。自己仿照着写了个,不过PHP端总是解密不出。问题就处在NoPadding.NoPading的情况下,一定要对加密数据不是kCCKeySizeAES128倍数部分进行0x0000的填充,不然加密长度不正确,一般情况下选择使用kCCOptionPKCS7Padding(也就是0x0001)进行填充,但是我们是NoPadding所以要用

2、0x0000填充。加密后再对加密数据进行了Base64加密,用到了google的GTMBase64,没有的网上自己找,下面上ios的代码:DES3Util.h内容////DES3Util.h//JuziAnalyticsDemo////Createdbywanyakunon13-6-6.//Copyright(c)2013年The9.Allrightsreserved.//#import@interfaceDES3Util:NSObject+(NSString*)AES128Encrypt:(NSString*)plainT

3、ext;+(NSString*)AES128Decrypt:(NSString*)encryptText;@endDES3Util.m文件内容////DES3Util.m//JuziAnalyticsDemo////Createdbywanyakunon13-6-6.//Copyright(c)2013年The9.Allrightsreserved.//#import"DES3Util.h"#import#import"GTMBase64.h"#definegkey@"16位长度的字符串"//自行修改#define

4、gIv@"16位长度的字符串"//自行修改@implementationDES3Util+(NSString*)AES128Encrypt:(NSString*)plainText{charkeyPtr[kCCKeySizeAES128+1];memset(keyPtr,0,sizeof(keyPtr));[gkeygetCString:keyPtrmaxLength:sizeof(keyPtr)encoding:NSUTF8StringEncoding];charivPtr[kCCBlockSizeAES128+1];memset(ivPtr,0,sizeof(ivPtr

5、));[gIvgetCString:ivPtrmaxLength:sizeof(ivPtr)encoding:NSUTF8StringEncoding];NSData*data=[plainTextdataUsingEncoding:NSUTF8StringEncoding];NSUIntegerdataLength=[datalength];intdiff=kCCKeySizeAES128-(dataLength%kCCKeySizeAES128);intnewSize=0;if(diff>0){newSize=dataLength+diff;}chardataPtr[n

6、ewSize];memcpy(dataPtr,[databytes],[datalength]);for(inti=0;i

7、8,0x0000,//NopaddingkeyPtr,kCCKeySizeAES128,ivPtr,dataPtr,sizeof(dataPtr),buffer,bufferSize,&numBytesCrypted);if(cryptStatus==kCCSuccess){NSData*resultData=[NSDatadataWithBytesNoCopy:bufferlength:numBytesCrypted];return[GTMBase64stringByEncodingData:resultData

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。