base64 encoder/decoder for objective-c编码及解码
时间: 2010-05-06 15:21 点击: 次
base64是广为使用的一种编码及解码方式, 通常用于网络传输和邮件传输中,使用base64可以将标点符号以及多字节文字等特殊字符编码以便传输,以下是base64 编码解码的objective-c代码,
base64是广为使用的一种编码及解码方式, 通常用于网络传输和邮件传输中,使用base64可以将标点符号以及多字节文字等特殊字符编码以便传输,以下是base64 编码解码的objective-c代码, 可以用于desktop和iphone程序当中
头文件
#include <UIKit/UIKit.h>
extern size_t EstimateBas64EncodedDataSize(size_t inDataSize);
extern size_t EstimateBas64DecodedDataSize(size_t inDataSize);
extern bool Base64EncodeData(const void *inInputData, size_t inInputDataSize, char *outOutputData, size_t *ioOutputDataSize, BOOL wrapped);
extern bool Base64DecodeData(const void *inInputData, size_t inInputDataSize, void *ioOutputData, size_t *ioOutputDataSize);
实现文件
#include "Base64Transcoder.h"
#include <math.h>
const UInt8 kBase64EncodeTable[64] = {
/* 0 */ \'A\', /* 1 */ \'B\', /* 2 */ \'C\', /* 3 */ \'D\',
/* 4 */ \'E\', /* 5 */ \'F\', /* 6 */ \'G\', /* 7 */ \'H\',
/* 8 */ \'I\', /* 9 */ \'J\', /* 10 */ \'K\', /* 11 */ \'L\',
/* 12 */ \'M\', /* 13 */ \'N\', /* 14 */ \'O\', /* 15 */ \'P\',
/* 16 */ \'Q\', /* 17 */ \'R\', /* 18 */ \'S\', /* 19 */ \'T\',
/* 20 */ \'U\', /* 21 */ \'V\', /* 22 */ \'W\', /* 23 */ \'X\',
/* 24 */ \'Y\', /* 25 */ \'Z\', /* 26 */ \'a\', /* 27 */ \'b\',
/* 28 */ \'c\', /* 29 */ \'d\', /* 30 */ \'e\', /* 31 */ \'f\',
/* 32 */ \'g\', /* 33 */ \'h\', /* 34 */ \'i\', /* 35 */ \'j\',
/* 36 */ \'k\', /* 37 */ \'l\', /* 38 */ \'m\', /* 39 */ \'n\',
/* 40 */ \'o\', /* 41 */ \'p\', /* 42 */ \'q\', /* 43 */ \'r\',
/* 44 */ \'s\', /* 45 */ \'t\', /* 46 */ \'u\', /* 47 */ \'v\',
/* 48 */ \'w\', /* 49 */ \'x\', /* 50 */ \'y\', /* 51 */ \'z\',
/* 52 */ \'0\', /* 53 */ \'1\', /* 54 */ \'2\', /* 55 */ \'3\',
/* 56 */ \'4\', /* 57 */ \'5\', /* 58 */ \'6\', /* 59 */ \'7\',
/* 60 */ \'8\', /* 61 */ \'9\', /* 62 */ \'+\', /* 63 */ \'/\'
};
/*
-1 = Base64 end of data marker.
-2 = White space (tabs, cr, lf, space)
-3 = Noise (all non whitespace, non-base64 characters)
-4 = Dangerous noise
-5 = Illegal noise (null byte)
*/
const SInt8 kBase64DecodeTable[128] = {
/* 0x00 */ -5, /* 0x01 */ -3, /* 0x02 */ -3, /* 0x03 */ -3,
/* 0x04 */ -3, /* 0x05 */ -3, /* 0x06 */ -3, /* 0x07 */ -3,
/* 0x08 */ -3, /* 0x09 */ -2, /* 0x0a */ -2, /* 0x0b */ -2,
/* 0x0c */ -2, /* 0x0d */ -2, /* 0x0e */ -3, /* 0x0f */ -3,
/* 0x10 */ -3, /* 0x11 */ -3, /* 0x12 */ -3, /* 0x13 */ -3,
/* 0x14 */
顶一下(2)
66.7%
踩一下(1)
33.3%
发表评论
本类文章点击排行榜
- [03-08] iPhone/Mac Objective-C内存管理教程
- [06-11] Objective-C 2.0之前需要了解的:
- [04-29] 苹果GNU C/C++,objective-C/C++新特
- [01-22] Objective-C内存管理知识总结
- [01-27] Objective-C字符串操作编程实例
- [01-25] C++和Objective-C混编(官方文档
- [03-13] Objective-C中的“@”指令探讨
- [01-20] Core animation简介
- [06-11] C++对象到Objective-C的参数传递
推荐内容
最近更新
- [06-10] Objective-C 使用MySQL数据库的教程
- [06-01] 浅谈XCode编译器的Blocks功能
- [05-20] Objective-C实现修改和删除nsstring 的方法
- [05-10] XCode里查询本机IP的Objective-C代码
- [05-06] base64 encoder/decoder for objective-c编码及解码
- [04-30] Objective-C中的字符串格式化输出
- [04-29] 苹果GNU C/C++,objective-C/C++新特性:Blocks
- [04-22] Objective-C 特性快速一览表
- [04-16] Objective-C不用数组传不定长度参数的方法


苹果GNU C/C++,objective-C/C++新特性:Blocks
Objective-C字符串操作编程实例:货币转换器
Core animation简介
关于Objective-C 2.0 的垃圾收集