ios 公钥字符串怎么加密解密
最近几天折腾了一下如何在iOS上使用RSA来加密。
iOS上并没有直接的RSA加密API。
但是iOS提供了x509的API,而x509是支持RSA加密的。
因此,我们可以通过制作自签名的x509证书(由于对安全性要求不高,我们并不需要使用CA认证的证书),再调用x509的相关API来进行加密。
接下来记录一下整个流程。
第一步,制作自签名的证书1. 最简单快捷的方法,打开Terminal,使用openssl(Mac OS X自带)生成私钥和自签名的x509证书。
2. openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 36503. 按照命令行的提示输入内容就行了。
4. 几个说明:5. public_key.der是输出的自签名的x509证书,即我们要用的。
6. private_key.pem是输出的私钥,用来解密的,请妥善保管。
7. rsa:1024这里的1024是密钥长度,1024是比较安全的,如果需要更安全的话,可以用2048,但是加解密代价也会增加。
8. -days:证书过期时间,一定要加上这个参数,默认的证书过期时间是30天,一般我们不希望证书这么短就过期,所以写上比较合适的天数,例如这里的3650(10年)。
9. 事实上,这一行命令包含了好几个步骤(我研究下面这些步骤的原因是我手头已经由一个private_key.pem私钥了,想直接用这个来生成x509证书,也就是用到了下面的2-3)10. 1)创建私钥11. openssl genrsa -out private_key.pem 102412. 2)创建证书请求(按照提示输入信息)13. openssl req -new -out cert.csr -key private_key.pem14. 3)自签署根证书15. openssl x509 -req -in cert.csr -out public_key.der -outform der -signkey private_key.pem -days 365016. 2.验证证书。
把public_key.der拖到xcode中,如果文件没有问题的话,那么就可以直接在xcode中打开,看到证书的各种信息。
第二步,使用public_key.der来进行加密。
1. 导入Security.framework。
2. 2.把public_key.der放到mainBundle中(一般直接拖到Xcode就行啦)。
3. 3.从public_key.der读取公钥。
4. 4.加密。
5. 下面是参考代码(只能用于加密长度小于等于116字节的内容,适合于对密码进行加密。
使用了ARC,不过还是要注意部分资源需要使用CFRealse来释放)6. RSA.h7. //8. // RSA.h9. //10. #import @interface RSA : NSObject { SecKeyRef publicKey; SecCertificateRef certificate; SecPolicyRef policy; SecTrustRef trust; size_t maxPlainLen; }- (NSData *) encryptWithData:(NSData *)content;- (NSData *) encryptWithString:(NSString *)content; @end RSA.m//// RSA.m//#import "RSA.h" @implementation RSA- (id)init { self = [super init]; NSString *publicKeyPath = [[NSBundle mainBundle] pathForResource:@"public_key" ofType:@"der"]; if (publicKeyPath == nil) { NSLog(@"Can not find pub.der"); return nil; } NSDate *publicKeyFileContent = [NSData dataWithContentsOfFile:publicKeyPath]; if (publicKeyFileContent == nil) { NSLog(@"Can not read from pub.der"); return nil; } certificate = SecCertificateCreateWithData(kCFAllocatorDefault, ( __bridge CFDataRef)publicKeyFileContent); if (certificate == nil) { NSLog(@"Can not read certificate from pub.der"); return nil; } policy = SecPolicyCreateBasicX509(); OSStatus returnCode = SecTrustCreateWithCertificates(certificate, policy, trust); if (returnCode != 0) { NSLog(@"SecTrustCreateWithCertificates fail. Error Code: %ld", returnCode); return nil; } SecTrustResultType trustResultType; returnCode = SecTrustEvaluate(trust, trustResultType); if (returnCode != 0) { NSLog(@"SecTrustEvaluate fail. Error Code: %ld", returnCode); return nil; } publicKey = SecTrustCopyPublicKey(trust); if (publicKey == nil) { NSLog(@"SecTrustCopyPublicKey fail"); return nil; } maxPlainLen = SecKeyGetBlockSize(publicKey) - 12; return self; }- (NSData *) encryptWithData:(NSData *)content { size_t plainLen = [content length]; if (plainLen > maxPlainLen) { NSLog(@"content(%ld) is too long, must return nil; } void *plain = malloc(plainLen); [content getBytes:plain length:plainLen]; size_t cipherLen = 128; // 当前RSA的密钥长度是128字节 void *cipher = malloc(cipherLen); OSStatus returnCode = SecKeyEncrypt(publicKey, kSecPaddingPKCS1, plain, plainLen, cipher, cipherLen); NSData *result = nil; if (returnCode != 0) { NSLog(@"SecKeyEncrypt fail. Error Code: %ld", returnCode); } else { result = [NSData dataWithBytes:cipher length:cipherLen]; } free(plain); free(cipher); return result; }- (NSData *) encryptWithString:(NSString *)content { return [self encryptWithData:[content dataUsingEncoding:NSUTF8StringEncoding]]; }- (void)dealloc{ CFRelease(certificate); CFRelease(trust); CFRelease(policy); CFRelease(publicKey); } @end 使用方法:RSA *rsa = [[RSA alloc] init]; if (rsa != nil) { NSLog(@"%@",[rsa encryptWithString:@"test"]); } else { NSLog(@"init rsa error"); }
如何解决苹果ios访问限制忘记密码
苹果手机访问限制的密码是无法找回的。
如果实在无法想起之前设置的密码,那么只好对手机进行恢复系统了,在恢复系统之前要先进行数据备份,否则会导致手机上的通讯录、照片和短信等数据丢失。
用数据线将手机和电脑连接起来,在电脑上打开iTunes,然后在页面中找到并单击【立即备份】按钮,直至备份完成。
苹果软件ios更新要输入什么密码
1、苹果软件ios更新要输入的密码,就是手机本身的Apple ID密码。
2、苹果帐户(Apple ID)是苹果公司为其产品(如iWork、iTunes Store和Apple Store)所引入的认证系统。
Apple ID作为一个全功能于一身的帐户,允许用户访问苹果的各种资源。
因为一个Apple ID可以被用于由苹果提供的多个产品和服务,Apple ID可用于执行与 Apple 有关的所有操作(包括使用 iCloud 存储内容、从 App Store 下载更新应用程序以及从 iTunes Store 购买歌曲、影片和电视节目)的登录信息。
3、 如果忘记了Apple ID密码,可以访问苹果官网—点击技术支持—Apple ID支持—忘记我的密码,通过验证找回ID密码。
ios操作系统的密码破解
自己可以恢复的,iOS:忘记密码或输入错误密码后设备停用当您在设置密码确保安全使用 iPhone、iPad 或 iPod touch 后输入了错误的密码,可能会看到设备“已停用”的消息。
了解如果您已忘记或不记得自己的密码或者设备显示“已停用”的消息时应如何处理。
如果您输入错误密码六次或以上,将看到以下任一消息:iPhone 已停用iPad 已停用iPod touch 已停用如果您之前将设备与 iTunes 同步过,您或许能够通过恢复设备来重设密码:将设备连接到通常与之同步的电脑,然后打开 iTunes。
注:如果 iTunes 提示您输入密码,请尝试已经与其同步的另一台电脑。
否则,请前往下文“如果您从未将设备与 iTunes 同步,或没有权限访问电脑”部分。
如果设备仍处于停用状态,或者 iTunes 没有自动同步您的设备,请将设备与 iTunes 同步。
备份和同步完成后,请恢复您的设备。
当 iOS 设置助理要求设置设备时,请选取“从 iTunes 备份恢复”。
在 iTunes 中选择您的设备,然后选取最近的设备备份。
如果您从未将设备与 iTunes 同步,或没有权限访问电脑如果您看到以下警告之一,则需要抹掉设备上的数据:“iTunes 未能连接到 [设备],因为它已被使用口令锁定了。
您必须在 [设备] 上输入口令,然后才能与 iTunes 配合使用它。
”“您尚未选择让 [设备] 信任此电脑”如果您已启用“查找我的 iPhone”,则可以使用“远程擦除”来抹掉设备上的内容。
如果您已使用 iCloud 来备份,或许能在抹掉设备内容后恢复最新的备份并重设密码。
或者,将设备置于恢复模式并将其恢复以抹掉设备上的内容:断开 USB 线缆与设备的连接,但保持线缆的另一端与电脑的 USB 端口相连。
关闭设备:按住睡眠/唤醒按钮数秒,直到出现红色滑块,然后滑动该滑块。
等待设备关闭。
按住主屏幕按钮,同时将 USB 线缆重新连接到设备。
设备应会打开。
继续按住主屏幕按钮,直到出现“连接 iTunes”屏幕。
iTunes 将提醒您,其检测到一个处于恢复模式的设备。
点按“好”,然后恢复设备。
是否可以解决您的问题?
苹果IOS7的Icloud的账户密码忘了怎么办
可根据以下流程进行参考操纵,1.在开始操作以前,如果你的 iPhone手机的iCloud里的“查找我的 iPhone”是为打开状态的话,请务必要知道上 Apple ID账号以及它的密码,否则在恢复系统以后,是不能激活手机的。
如果你不知道账号的密码,个人建议最好停止行下面的操作;2.如果你是属于当前可以用指纹解锁手机,只是忘记了原来设置的“开机密码”的话,此时我们可以先将 iPhone的个人数据在电脑上备份一下。
如果你没有的话,可以跳过备份数据的步骤;3.请将手机与一台安装有 iTunes 软件的电脑连接起来,如果还没有安装的话,请先安装;4.当iTunes 识别到了 iPhone以后,请点击窗口中的手机图标;5.随后请在 iPhone 的管理摘要界面中,点击“立即备份”按钮,根据个人的需要来选择备份手机上的数据;6.当备份完数据以后,接下来请先关闭 iPone6手机。
长按电源键,再滑动关机;7.接下来请按下面的操作,让 iPhone进入恢复模式:先请按电源键开机,当屏幕会出现苹果标志,不要松开电源键;--紧接着再按住主屏 Home 键不松手,直到屏幕黑屏;--当看到屏幕黑屏时,请松开电源键,继续按住主屏 Home 键,直到电脑端的 iTunes 出现检测到一个处于恢复模式的 iPhone;如果你没能成功让 iPhone 进入恢复模式的话,请从第五步开始,多试几次;8.随后请点击 iTunes 窗口里的“恢复 iPhone”按钮(由于是在恢复模式下,这里显示不可用是正常的,无需担心);9.接着 iTunes 会连接苹果的更新服务器,检测当前最新的 iOS 手机系统,并提示我们是否要删除手机上的所有数据并恢复,点击“恢复并更新”按钮继续;10.随后 iTunes 会自动从苹果的更新服务器上下载恢复所需要的 iOS 系统,当下载完成以后会自动恢复到 iPhone 手机上;11.最后当恢复成功以后,重新激活 iPhone手机,就相当于恢复了系统的出厂设置,可以重新为手机设置开机密码了。
再次是为不能解锁的 iPhone6 手机恢复系统。
如果你当前是直接进入不了系统的话,你也可以按照上面的方法,先将 iPhone 与电脑上的 iTunes 连接起来,看看是否可以连接成功。
如果能够连接成功的话,可以用上面的方法来备份,然后再恢复。
如果此时连接不成功的话,那就只有强行恢复了,从上面的第6步开始操作就可以了。
更新ios7后输入密码错误显示iphone已停用
现在解决这个问题最简单的方法就是看能否这个软件的作者和客服联系上,看有没有什么有效的解决办法。
另外建议您以后再给文件和文件夹加密的时候选择专业的文件和文件夹加密软件。
文件夹加密超级大师是一款安全性极高的文件和文件夹加密软件。
她功能强大,速度快,效果好。
主要功能有文件加密,文件夹加密、万能锁、数据粉碎等。
可满足日常工作和生活中的安全保密需求,您尽可放心使用。
看我的回答您是否满意,如果满意的话,请采纳一下。
谢谢!
转载请注明出处51数据库 » ios pem password cb
今晚打老虎-_-