iOS上的密码编码和解码

问题描述:

是否有任何API用于编码或解码iPhone中的文本密码?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

我希望这有助于...

灵光