• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift实现AES解密

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原来的加密解密是用java写的,用在安卓系统上。现在要用在iOS系统上,所以从服务器上下载过来的加密文件要用swift来实现其的解密方法。

具体过程如下:

给NSData增加一个类目,NSData+AES

NSData+AES.h

- (NSData *)AES128DecryptWithKey:(NSString *)key iv:(NSData *)iv;

 

NSData+AES.m

- (NSData *)AES128operation:(CCOperation)operation key:(NSString *)key iv:(NSData *)iv

{

    char keyPtr[kCCKeySizeAES128 + 1];

    bzero(keyPtr, sizeof(keyPtr));

    [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

    

    Byte key2[] = {0xF0,0x1E,0x02,0xB2,0xE3,0xC9,0x7A,0x43,0xFD,0xFE,0x31,0x1A,0x2B,0xA4,0x4C,0x60};

    

    // IV

    Byte ivPtr[kCCBlockSizeAES128 + 1];

    bzero(ivPtr, sizeof(ivPtr));

    //[iv getCString:ivPtr maxLength:sizeof(ivPtr) encoding:NSUTF8StringEncoding];

    [iv getBytes:&ivPtr length:16];

    

    size_t bufferSize = [self length] + kCCBlockSizeAES128;

    void *buffer = malloc(bufferSize);

    size_t numBytesEncrypted = 0;

    

    CCCryptorStatus cryptorStatus = CCCrypt(operation, kCCAlgorithmAES128, kCCOptionPKCS7Padding,

                                            key2, kCCKeySizeAES128,

                                            ivPtr,

                                            [self bytes], [self length],

                                            buffer, bufferSize,

                                            &numBytesEncrypted);

    

    if(cryptorStatus == kCCSuccess){

        NSLog(@"Success");

        return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];

    }else{

        NSLog(@"Error");

    }

    

    free(buffer);

    return nil;

}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift学习笔记一:常用类型之整形发布时间:2022-07-13
下一篇:
[Swift]LeetCode529.扫雷游戏|Minesweeper发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap