iOS上的密码编码和解码
答
还有就是公共的密码API。
#import <CommonCrypto/CommonCryptor.h>
+ (NSData *)doCipher:(NSData *)dataIn
iv:(NSData *)iv
key:(NSData *)symmetricKey
context:(CCOperation)encryptOrDecrypt
{
CCCryptorStatus ccStatus = kCCSuccess;
size_t cryptBytes = 0; // Number of bytes moved to buffer.
NSMutableData *dataOut = [NSMutableData dataWithLength:dataIn.length + kCCBlockSizeAES128];
ccStatus = CCCrypt(encryptOrDecrypt,
kCCAlgorithmAES128,
kCCOptionPKCS7Padding,
symmetricKey.bytes,
kCCKeySizeAES128,
iv.bytes,
dataIn.bytes,
dataIn.length,
dataOut.mutableBytes,
dataOut.length,
&cryptBytes);
if (ccStatus != kCCSuccess) {
NSLog(@"CCCrypt status: %d", ccStatus);
}
dataOut.length = cryptBytes;
return dataOut;
}
此外还添加Security.framework到您的项目。
如果安全是非常重要的考虑让别人安全的经验创建的代码和协议。如果安全性不重要,只需发送密码即可。
在应用中的一些错误并不坏,应用还基本工作,在安全漏洞一个和所有安全都将丢失。
良好的安全性并不像人们想象的那么简单。
答
如果你只对密码感兴趣的您不妨使用散列函数(MD5,SHA),并与密码的哈希比较输入哈希值。这样,密码永远不会以明文保存,并且如果您的服务器有一天遭到黑客入侵,他们只会得到哈希值,并且必须执行映像前攻击才能获取密码。
答
你想要做的是使用安全框架。本网站为您提供的例子:
对称加密:http://greghaygood.com/2009/01/17/symmetric-encryption-with-the-iphone-sdk-and-securityframework
非对称加密:http://greghaygood.com/2009/01/17/asymmetric-encryption-with-the-iphone-sdk-and-securityframework
我希望这有助于...
灵光