`

ios 发送文件和md5加密

 
阅读更多

 

 

 

 

#import <CommonCrypto/CommonDigest.h>

-(void) UploadToKingjoyServer{
    //测试地址,在项目中去掉,在stopRecord中传入的
    self.uploadPath = @"http://xxxxx";
    self.playerID = @"100010010002";
    
    NSMutableString *urlString = [[NSMutableString alloc]init ];
    [urlString  appendString: self.uploadPath];
    
    //1.签名
    NSString * key = @"md5key";//md5签名密钥key
    NSString * encryp = [self MD5:[NSString stringWithFormat:@"%@%@" , self.playerID , key]];
    [urlString appendFormat:@"?playerId=%@&flag=%@",self.playerID , encryp ];
    
    //2.构造http请求
    NSString *filename = self.amrFilePath;
    
    NSData *audioData = [NSData dataWithContentsOfFile:filename];
    
    
    NSMutableURLRequest * request= [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
    
    [request setValue:[NSString stringWithFormat:@"%lu",(unsigned long)[audioData length] ] forHTTPHeaderField:@"Content-Length"];
    
    NSLog(@"length %@" , [NSString stringWithFormat:@"%lu",(unsigned long)[audioData length]]);
    
    [request addValue:@"binary/octet-stream" forHTTPHeaderField: @"Content-Type"];
    [request setHTTPBody:audioData];

    //3.请求,处理回调
    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
                               
                               NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;

                               NSLog(@"statusCode %li" , (long)[httpResponse statusCode]);
                               if ([httpResponse statusCode] == 200) {
                                   
                               }
                               
                               NSString* rs = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                               NSLog(@"response %@" , rs);
                           }];
}

//md5签名
- (NSString *)MD5:(NSString* )input {
    
    const char * pointer = input.UTF8String;
    unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
    
    CC_MD5(pointer, (CC_LONG)strlen(pointer), md5Buffer);
    
    NSMutableString *string = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
        [string appendFormat:@"%02x",md5Buffer[i]];
    
    return string;
}

 

分享到:
评论

相关推荐

    iOS常用加密方法(aes、md5、base64)

    总的来说,理解并熟练运用AES、MD5和Base64是iOS开发中的基本技能。它们在保护用户隐私、确保数据安全以及数据传输等方面发挥着重要作用。然而,随着安全需求的提升,开发者还应关注更先进的加密技术和最佳实践,...

    ios常见加密解密方法(RSA、DES 、AES、MD5)

    本文将详细介绍几种常见的加密解密方法,包括RSA、DES、AES以及MD5,并针对iOS环境中的具体使用情况进行分析。 首先,RSA是一种非对称加密算法,其特点是拥有两个密钥——公钥和私钥。公钥用于加密,私钥用于解密。...

    demo~ios-md5等

    标题"demo~ios-md5等"和描述中提到的"iOS常用加密方法(aes、md5、base64)"涉及到的是三种常见的加密技术:MD5、AES和Base64。下面将详细解释这些加密方法以及它们在iOS中的应用。 1. **MD5(Message-Digest ...

    ios-加密.zip

    5. **哈希函数**:在加密领域,哈希函数也非常重要,如MD5或SHA系列,它们可以将任意长度的信息转化为固定长度的哈希值。"HBtools"可能包含了用于验证文件完整性和一致性检查的哈希工具。 6. **数字签名**:数字...

    IOS热修复之 JSPatch 实现方案

    3. **下发脚本与加密值**:将加密后的MD5值和脚本文件一起发送给客户端。 4. **客户端解密**:客户端使用预先存储的公钥对加密的MD5值进行解密。 5. **验证MD5值**:客户端自行计算脚本文件的MD5值,并与解密后的MD5...

    objective-c实现authCode 解决php与ios通信加密的问题 代码

    在Objective-C中实现`AuthCode`,我们可以使用内置的`CommonCrypto`框架,这是一个强大的加密库,提供了多种加密算法,如MD5、SHA、HMAC等。对于`AuthCode`,我们可能会选择HMAC(Hash-based Message Authentication...

    iOS 实现的即时聊天

    在iOS平台上实现即时聊天功能,通常涉及到多个技术层面和组件的整合。本项目的核心是使用XMPP(Extensible Messaging and Presence Protocol)协议来实现实时通信。XMPP是一种基于XML的开放标准,广泛用于即时消息、...

    iOS面试题合集

    - **知识点概述**:通过比较文件大小、MD5校验等方式确保文件完整无损地传输。 #### 二十八、RAC防止重复点击 - **知识点概述**:使用ReactiveCocoa (RAC) 可以通过信号(Signal)的时间间隔过滤功能来防止按钮的...

    WebLogicSSL解决苹果IOS itms下载问题NEW

    keytool -certreq -alias serveralias -sigalg MD5withRSA -file E:/ssl/server.csr -keystore E:/ssl/server.jks -keypass password -storepass password ``` 通常,你将这个CSR文件发送给正式的CA,由他们验证...

    swift-基于Golang开发的iOS推送服务

    5. `utils`:通用工具函数,例如加密解密、日志记录等。 6. `README.md`:项目介绍和使用指南。 在实际开发过程中,我们还需要考虑以下方面: - 错误处理:确保在处理推送请求时能够正确处理各种错误情况,如网络...

    iOS微信支付功能实现

    这些参数会经过特定的加密算法(如MD5)处理,生成预处理订单字符串(prepay_id)。 5. **调用微信支付API**:使用微信SDK提供的`WXPayEntryController`类来启动支付流程。传入预处理订单字符串和其他必要参数,如...

    FMail文件信使 V1.0.zip

    此外,为了保证数据在传输过程中的完整性,软件可能采用了校验和算法,如CRC(循环冗余校验)或MD5,来验证文件是否在传输过程中出现错误。 在安全性方面,FMail文件信使可能会集成加密技术,比如AES(高级加密标准...

    iOS 开发笔记

    根据提供的文件信息,我们可以总结出以下五个iOS开发中的关键技术点: ### 1. MD5 加密算法 在 iOS 应用开发中,MD5(Message-Digest Algorithm 5)是一种常用的散列函数,用于生成固定长度(通常是128位)的散列...

    RSA加密解密.mov.zip

    RSA加密解密是一种广泛应用于网络安全领域的公钥加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它基于大整数因子分解的数学难题,为数据通信提供安全的加密手段。在Objective-C...

    js_sdk.zip

    5. 用户接口:可能封装了与uni-app的交互逻辑,方便开发者在uni-app项目中直接调用加密功能。 使用这个js_sdk,uni-app的开发者可以在前端对用户的用户名和密码进行加密,然后发送到服务器。服务器端使用相应的私钥...

    idtcpserver文件传输xe7PC端及手机端

    另外,CRC(循环冗余校验)或MD5等校验算法可能会用于验证文件传输的完整性。 总结起来,`idtcpserver文件传输xe7`是一个跨平台的文件传输解决方案,它利用TCP协议和可能的高级特性(如加密、压缩、断点续传等)来...

    java后台提供给ios的微信支付接口

    - **签名计算**:在生成支付参数时,Java后端需要按照微信支付的签名规则(通常是MD5或HMAC-SHA256算法)计算签名,以确保数据的安全性。 - **错误处理和异常处理**:在处理支付请求时,后端需要处理可能出现的各种...

    xmpp for ios

    3. **认证与安全**:XMPP支持多种身份验证方式,如简单的密码认证、DIGEST-MD5和TLS/SSL加密,确保通信的安全性。 4. **Jabber ID (JID)**:每个XMPP用户都有一个独特的Jabber ID,类似于电子邮件地址,格式为`...

    类QQ聊天,实现客户端和服务器端得聊天和文件传输

    - **文件校验**:为了保证文件完整无误,通常会在传输前后计算并比较文件的MD5或SHA哈希值。 - **进度显示与取消操作**:用户界面应提供文件传输进度显示,同时允许用户在传输过程中取消操作。 4. **安全与隐私...

Global site tag (gtag.js) - Google Analytics