Кодирование и декодирование пароля на iOS - PullRequest
4 голосов
/ 28 сентября 2011

Существует ли API для кодирования или декодирования пароля к тексту в iPhone?

Ответы [ 3 ]

4 голосов
/ 28 сентября 2011

Существует Common Crypto 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 в ваш проект.

Если важна безопасность, подумайте о том, чтобы кто-нибудь с опытом безопасности создал код и протокол,Если безопасность не важна, просто отправьте пароль в открытом виде.

Несколько ошибок в приложении не так уж и плохи, приложение по-прежнему в основном работает, одна ошибка в безопасности и вся безопасность потеряна.

Хорошая безопасность не так проста, как можно подумать.

0 голосов
/ 05 октября 2011

То, что вы хотите сделать, это использовать Security Framework.Этот веб-сайт предоставляет вам примеры:

Симметричное шифрование: 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

Надеюсь, это поможет ...

Эммануил

0 голосов
/ 03 октября 2011

Если вас интересуют только пароли, вы можете также использовать хеш-функции (md5, sha) и сравнить входной хеш с хешем пароля.Таким образом, пароль никогда не сохраняется в незашифрованном виде, и если ваш сервер когда-нибудь будет взломан, он получит только хэши и должен будет выполнить атаку перед изображением, чтобы получить пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...