2

mp3音楽をダウンロードしてユーザーの電話に保存するモバイルアプリケーション(android | iphone)を開発する必要がありますが、ユーザーがそのmp3を配布しないようにする必要があります。これらのファイルを暗号化する方法が必要です。
私にできることはありますか?

ありがとう

4

1 に答える 1

1

CommonCrypto 関数を使用して、AES で暗号化/復号化し、キーをキーチェーンに保存できます。

サンプルコードは次のとおりです。

#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;
}
// Also add Security.framework to your project.

これには iv (初期化ベクトル) が必要であり、単純なパスワードをキーに使用しないでください。優れたセキュリティには、いくつかの暗号化ルーチンが必要です。暗号化に関する十分な知識とコードのレビューが必要です。

于 2012-05-07T22:47:28.767 に答える