资源简介
objective-c实现authCode 解决php与ios通信加密的问题
代码片段和文件信息
#import “base64.h“
#import
#import
#if !__has_feature(objc_arc)
#error This library requires automatic reference counting
#endif
@implementation NSData (base64)
+ (NSData *)dataWithbase64EncodedString:(NSString *)string
{
const char lookup[] =
{
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99 99 99 99 62 99 99 99 63
52 53 54 55 56 57 58 59 60 61 99 99 99 99 99 99
99 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
15 16 17 18 19 20 21 22 23 24 25 99 99 99 99 99
99 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 99 99 99 99 99
};
NSData *inputData = [string dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
long long inputLength = [inputData length];
const unsigned char *inputBytes = [inputData bytes];
long long maxOutputLength = (inputLength / 4 + 1) * 3;
NSMutableData *outputData = [NSMutableData dataWithLength:maxOutputLength];
unsigned char *outputBytes = (unsigned char *)[outputData mutableBytes];
int accumulator = 0;
long long outputLength = 0;
unsigned char accumulated[] = {0 0 0 0};
for (long long i = 0; i < inputLength; i++)
{
unsigned char decoded = lookup[inputBytes[i] & 0x7F];
if (decoded != 99)
{
accumulated[accumulator] = decoded;
if (accumulator == 3)
{
outputBytes[outputLength++] = (accumulated[0] << 2) | (accumulated[1] >> 4);
outputBytes[outputLength++] = (accumulated[1] << 4) | (accumulated[2] >> 2);
outputBytes[outputLength++] = (accumulated[2] << 6) | accumulated[3];
}
accumulator = (accumulator + 1) % 4;
}
}
//handle left-over data
if (accumulator > 0) outputBytes[outputLength] = (accumulated[0] << 2) | (accumulated[1] >> 4);
if (accumulator > 1) outputBytes[++outputLength] = (accumulated[1] << 4) | (accumulated[2] >> 2);
if (accumulator > 2) outputLength++;
//truncate data to match actual output length
outputData.length = outputLength;
return outputLength? outputData: nil;
}
- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth
{
//ensure wrapWidth is a multiple of 4
wrapWidth = (wrapWidth / 4) * 4;
const char lookup[] = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“;
long long inputLength = [self length];
const unsigned char *inputBytes = [self bytes];
long long maxOutputLength = (inputLength / 3 + 1) * 4;
maxOutputLength += wrapWidth? (maxOutputLength / wrapWidth) * 2: 0;
unsigned char *outputBytes = (unsigned char *)malloc(maxOutputLength);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-03-05 11:44 authCode\
文件 6148 2015-03-05 11:44 authCode\.DS_Store
目录 0 2015-03-05 11:49 __MACOSX\
目录 0 2015-03-05 11:49 __MACOSX\authCode\
文件 120 2015-03-05 11:44 __MACOSX\authCode\._.DS_Store
目录 0 2015-03-05 11:45 authCode\ios\
文件 6148 2015-03-05 11:48 authCode\ios\.DS_Store
目录 0 2015-03-05 11:49 __MACOSX\authCode\ios\
文件 120 2015-03-05 11:48 __MACOSX\authCode\ios\._.DS_Store
文件 549 2015-03-05 11:45 authCode\ios\ba
文件 171 2015-03-05 11:45 __MACOSX\authCode\ios\._ba
文件 9673 2015-03-05 11:45 authCode\ios\ba
文件 171 2015-03-05 11:45 __MACOSX\authCode\ios\._ba
文件 75 2015-03-05 11:48 authCode\ios\ViewController.h
文件 171 2015-03-05 11:48 __MACOSX\authCode\ios\._ViewController.h
文件 857 2015-03-05 11:48 authCode\ios\ViewController.m
文件 171 2015-03-05 11:48 __MACOSX\authCode\ios\._ViewController.m
目录 0 2015-03-05 11:44 authCode\php\
文件 6148 2015-03-05 11:44 authCode\php\.DS_Store
目录 0 2015-03-05 11:49 __MACOSX\authCode\php\
文件 120 2015-03-05 11:44 __MACOSX\authCode\php\._.DS_Store
文件 1713 2015-03-05 11:43 authCode\php\test.php
文件 171 2015-03-05 11:43 __MACOSX\authCode\php\._test.php
相关资源
- 好用的php微信企业号
- 最专业的PHP集成环境秒杀phpStudy、xa
- THINKPHP商城,含支付宝、微信支付
- thinkPHP支付宝支付功能完整源码
- phpMyFAQ v3.0.1 多国语言版
- php MyFAQ问答系统 多国语言版 v3.0.4
- phpMyFAQ 问答系统
- phpMyFAQ v3.0.0 多国语言版
- phpMyFAQ 开源问答系统 v3.0.0 RC2
- PHP网页小游戏
- php小说采集demo
- PHP寄生虫繁殖劫持程序V3.0
- 韩顺平 PHP从入门到精通百度云资源(
- windows安装intl扩展
- phpSpreadsheet.zip
- Xblog、PHPwind、Oblog三款主流商用博客软
- PHP微信扫码关注公众号并授权登录.
- ZipFile.php(PHP压缩类打包)
- php聊天室源码群聊私聊多聊天室
- PHP支持手势的手机端图片裁剪上传
- 使用PHP+Sphinx建立高效的站内搜索引擎
- vip影视源码自动无需采集THINKPHP版
- ThinkPHP5.1 excel表的导入导出操作 (P
- PhpSpreadsheet Excel组件,PHPExcel升级版
- 追梦翔飞数字报刊管理系统PHPV7.3
- 拼团商城开源系统-基于thinkphp5-如花拼
- 微信支付Native扫码方式PHP
- 微信分享jssdk朋友圈带缩略图-utf8php通
- php简历模板
- php大马一句话数据库集合
评论
共有 条评论