- 浏览: 91495 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
ma_029619:
的确,打不开
用 UITableView 进行多选的代码例子 -
janedoneway:
不错,学习了,同时问一下,动画结束后同时隐藏图片,要怎么做?你 ...
[iOS]iPhoto的删除动画(转) -
cn23snyga:
博主的POST方法2.1中,怎么是 setHTTPMethod ...
[iOS]网络编程专题:发送Http请求(POST GET)的方法 -
bear1122ccc:
文件坏了。
用 UITableView 进行多选的代码例子
保护PDF内容
为了保护PDF内容,我们可以在辅助字典中指定一些安全选项并传递给CGPDFContextCreate。我们可以通过包含如下关键字来设置所有者密码、用户密码、PDF是否可以被打印或拷贝:
· kCGPDFContextOwnerPassword: 定义PDF文档的所有者密码。如果指定该值,则文档使用所有者密码来加密;否则文档不加密。该关键字的值必须是ASCII编码的CFString对象。只有前32位是用于密码的。该值没有默认值。如果该值不能表示成ASCII,则无法创建文档并返回NULL。Quartz使用40-bit加密。
· kCGPDFContextUserPassword: 定义PDF文档的用户密码。如果文档加密了,则该值是文档的用户密码。如果没有指定,则用户密码为空。该关键字的值必须是ASCII编码的CFString对象。只有前32位是用于密码的。如果该值不能表示成ASCII,则无法创建文档并返回NULL。
· kCGPDFContextAllowsPrinting:指定当使用用户密码锁定时文档是否可以打印。该值必须是CFBoolean对象。默认值是kCGBooleanTrue。
· kCGPDFContextAllowsCopying: 指定当使用用户密码锁定时文档是否可以拷贝。该值必须是CFBoolean对象。默认值是kCGBooleanTrue。
代码清单14-4(下一章)显示了确认PDF文档是否被锁定,及用密码打开文档。
在创建PDF文件设置密码
使用Quartz创建PDF与绘制其它图形上下文一下简单。我们指定一个PDF文件地址,设置一个PDF图形上下文,并使用与其它图形上下文一样的绘制程序。如代码清单13-4所示的MyCreatePDFFile函数,显示了创建一个PDF的所有工作。
注意,代码在CGPDFContextBeginPage和CGPDFContextEndPage中来绘制PDF。我们可以传递一个CFDictionary对象来指定页属性,包括media, crop, bleed,trim和art boxes。
void MyCreatePDFFile (CGRectpageRect, const char *filename)
{
CGContextRef pdfContext;
CFStringRef path;
CFURLRef url;
CFData boxData = NULL;
CFMutableDictionaryRef myDictionary = NULL;
CFMutableDictionaryRef pageDictionary = NULL;
path = CFStringCreateWithCString (NULL, filename, kCFStringEncodingUTF8);
url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, 0);
CFRelease (path);
myDictionary = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR("MyPDF File"));
CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("MyName"));
CFDictionarySetValue(myDictionary, kCGPDFContextOwnerPassword, CFSTR("zhoumin"));
CFDictionarySetValue(myDictionary, kCGPDFContextUserPassword, CFSTR("zhoumin"));
---------------------------------
//zhoumin加入
//kCGPDFContextOwnerPassword,kCGPDFContextUserPassword这两个选项是对pdf加密
---------------------------------
pdfContext = CGPDFContextCreateWithURL (url, &pageRect,myDictionary);
CFRelease(myDictionary);
CFRelease(url);
pageDictionary = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
boxData = CFDataCreate(NULL,(const UInt8 *)&pageRect, sizeof(CGRect));
CFDictionarySetValue(pageDictionary, kCGPDFContextMediaBox, boxData);
CGPDFContextBeginPage (pdfContext, &pageRect);
myDrawContent (pdfContext);
CGPDFContextEndPage (pdfContext);
CGContextRelease (pdfContext);
CFRelease(pageDictionary);
CFRelease(boxData);
}
PDF解密
------------------------------------------------------------------
CGPDFDocumentRef pdf;
pdf = CGPDFDocumentCreateWithURL(pdfURL);
if (pdf == NULL) {
NSLog(@"can't open '%@'", pdfURL);
CFRelease (pdfURL);
}
if (CGPDFDocumentIsEncrypted (pdf)) {//判断pdf是否加密
if (!CGPDFDocumentUnlockWithPassword (pdf, "")) {//判断密码是否为""
NSString *password = @"zhoumin";
if (password != NULL) {
if (!CGPDFDocumentUnlockWithPassword (pdf, [password UTF8String]))
//使用password对pdf进行解密,密码有效返回yes
NSLog(@"invalid password.");
}
}
}
if (!CGPDFDocumentIsUnlocked (pdf)) {//判断pdf是否打开状态
NSLog(@"CGPDFDocumentIsUnlocked");
}
if (CGPDFDocumentGetNumberOfPages(pdf) == 0) {
NSLog(@"CGPDFDocumentGetNumberOfPages == 0");
}
------------------------------------------------------------------
苹果官方文档
发表评论
-
[iOS]iPhoto的删除动画(转)
2012-03-05 09:36 3180iPhoto 中想删除某张照片时,点击删除键,就能看到照 ... -
testBubble_泡泡聊天
2012-02-29 11:38 1151testBubble_zhou_min_泡泡聊天 ... -
BigHeadTip_谷歌地图大头针
2012-02-29 11:34 1635BigHeadTip_zhou_min_谷歌地图大头针 ... -
FFDownloadManager_alertview文件下载器
2012-02-29 11:28 1069FFDownloadManager_zhou_min_aler ... -
苹果官网--iPhone应用程序编程指南
2012-02-29 11:21 1024苹果官网-zhou_min-iPhone应用程序编程指南 ... -
iOS之GCD
2012-02-12 21:35 0GCD之dispatch queue iOS中 ... -
循环滚动
2012-02-02 15:19 0循环滚动 -
自定义AlertView(多种色彩)
2012-02-02 14:50 1157自定义AlertView(多种色彩) ... -
用 UITableView 进行多选的代码例子
2012-02-02 14:19 1616用 UITableView 进行多选的代码例子 ... -
QQ风格的UITableView
2012-02-02 14:00 1315QQ风格的UITableView ... -
GLpaint画图
2012-02-01 23:50 1847GLpaint画图 -
滑动弹出菜单的代码例子
2012-02-01 23:31 1189滑动弹出菜单的代码例子可在应用中实现方便美观的按钮收放效果。如 ... -
UIAlertTableView 里进行单选和多选的代码例子
2012-02-01 23:22 1143UIAlertTableView 里进行单选和多选的代码例子 ... -
自定义控件用法和一些常用页面效果
2012-02-01 22:23 1021自定义控件用法和一些常用页面效果 原文:http:// ... -
viewDidUnload 和 dealloc 的区别
2012-01-30 10:57 7489对于iphone开发人员来说,内存管理是极为重要的技巧,哪怕程 ... -
第二个iPhone应用程序:“Say Hello”
2012-01-30 10:49 1355项目需求 写一个iPhone应用程序,要求可以输入名字, ... -
[iOS]网页保存为png
2012-01-20 10:48 0保存 -
[iOS]iOS截屏
2012-01-19 17:22 2752UIGraphicsBeginImageContext ... -
[iOS]AES加密在iOS上面的实现
2012-01-16 13:38 9160Encryption.h文件 // // En ... -
[iOS]Objective-C利用协议实现回调函数(类似java的回调函数)
2012-01-01 13:18 7901在编写iphone开发时,最 ...
相关推荐
本教程将深入讲解如何在iOS应用中实现Tea加密解密,以及如何正确地存储和恢复加密数据。 Tea加密算法基于两个32位的整数,它使用了四轮非线性变换,通过多次加法、乘法和位移操作来实现数据的加密。Tea算法的特点是...
标题"iOS RSA加密 分段解密"涉及到的关键知识点包括: 1. **RSA加密原理**:RSA算法基于欧拉定理和费马小定理,通过选取两个大素数p和q生成一个大合数n(即p*q),然后计算φ(n)=(p-1)*(q-1),选择一个与φ(n)互质...
iOS RSA加密与解密Demo:https://github.com/fuaiyi/RSAEncryption博客:http://www.jianshu.com/u/b1d7ade703b4
在iOS和Android平台上实现AES加密解密是开发者经常遇到的任务,尤其对于需要跨平台传输和存储敏感信息的场景。本篇文章将详细探讨AES加密解密算法在iOS和Android平台上的实现原理以及具体步骤。 首先,AES算法基于...
本篇将详细介绍如何在iOS应用中实现AES加密解密。 一、AES加密原理 AES加密基于替换和置换操作,通过128位的块进行加密,密钥长度可以是128、192或256位。在加密过程中,原始数据会被分成128位的块,然后通过一系列...
本文将深入探讨iOS平台上使用Objective-C(OC)进行AES128加密和解密的实现,以及如何确保与硬件和蓝牙底层的兼容性。 首先,我们需要引入必要的库。在iOS中,苹果提供了一个名为CommonCrypto的框架,它包含了AES...
对数据进行加密和解密 AES加密有多种算法模式,下面提供两套模式的可用源码: 一、CBC(Cipher Block Chaining,加密块链)模式 二、ECB(Electronic Code Book,电子密码本)模式 其中CBC模式下,有.NET的源码。而...
4. 平台间兼容性处理:确保JAVA和iOS加密后的结果一致,以便于数据交换。 在实际应用中,需要注意以下几点: - DES的安全性相对较弱,因为56位的密钥长度容易受到现代计算机的攻击。为了增强安全性,通常会使用...
**iOS中的AES128加密解密** AES(Advanced Encryption ...通过以上介绍,你应该对iOS平台上的AES128加密解密有了基本了解。在实际项目中,可以根据需求选择合适的实现方式,并结合良好的编程实践确保数据的安全。
本篇将详细讲解如何在`Android`、`iOS`和`PHP`中实现`DES`加密解密,并探讨其在中文和长字符串处理中的应用。 首先,让我们了解`DES`的基本原理。`DES`是一种分组密码,它将明文分成64位的数据块,然后使用56位的...
"ios-加密解密.zip"这个文件很可能包含了一些关于iOS平台上加密和解密技术的资料,这对于我们理解和实现iOS应用中的数据保护至关重要。下面我们将深入探讨iOS平台上的加密技术及其应用。 在iOS中,主要使用的是对称...
java、Android、javaScript(可以改成vue)、ios AES加密通用,可在服务端加密,客户端解密,也可在客户端加密,服务端解密;由于csdn会自动把积分改到50,可以发邮件到1622007541@qq.com 免费送
"图片解密ios"这个主题主要涉及的是如何在iOS应用中对图片进行加密和解密,确保数据的安全性,同时也能优化用户体验。下面将深入探讨相关知识点。 首先,我们需要理解为什么要在iOS应用中对图片进行加密。在移动...
理解并掌握这种AES加密解密方法对于iOS开发者来说非常关键,可以有效地保护应用程序的数据安全,防止未授权访问。同时,了解如何在Objective-C中使用CommonCrypto库也可以扩展到其他加密算法的实现,如RSA或DES。在...
在iOS开发中,数据安全是至关重要的...在iOS项目中实现RSA加密解密不仅能够保护用户的隐私,还可以符合App Store的安全规定,确保应用的合规性。通过理解并正确实施RSA加密,开发者可以构建更加安全、可靠的应用程序。
本话题将围绕“iOS AES加密 PHP解密”这一主题展开,讲解如何在iOS应用中使用AES加密数据,并在后端PHP环境中进行解密。 首先,我们需要理解AES的工作原理。AES是一种块加密算法,它以固定大小的块(128位)为单位...
在iOS应用中,AES经常用于加密和解密数据,确保信息在传输或存储时的安全。本篇文章将详细探讨AES在ECB模式下使用PKCS7填充的加密与解密方法。 AES加密算法有多种工作模式,如ECB(Electronic Codebook)、CBC...
而"AESTest"可能包含了测试用例,用于验证iOS和Android两端加密解密的一致性。在实际项目中,开发者需要确保在两个平台上使用相同的密钥和初始化向量(IV)来加密和解密数据,这样才能保证数据的互操作性。 在实现...
在iOS开发中,Objective-C作为主要的编程语言之一,实现XXTEA加密解密功能对于保护应用程序的数据安全至关重要。 Objective-C是苹果平台上的主要编程语言,它基于C语言并添加了面向对象的特性。在iOS应用开发中,...