2012-05-07 26 views
2

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

おかげ

+0

あなたはそれらを暗号化できます。単にpgp/des/...などの鍵を生成し、ファイルを暗号化して再生するときに解読することができます。 –

+1

暗号化する場合は、再生時に復号化する必要があります。あなたが何かを解読するなら、あなたは鍵を必要とし、あなたがその鍵をその装置に持っていれば、誰かがその鍵を入手することが可能です。ファイルを配布保護したい場合は、配布しないでください。 – gcochard

+2

@Gregを配布しないのは現実的な解決策ではありません。それは、カードを配布しないか、セキュリティを提供しないかの選択に伴うクレジットカードに似ています。損失を大幅に削減できる優れたセキュリティを提供するという中長期的な理由があります。 – zaph

答えて

1

あなたは、暗号化/ AESで暗号化解除し、キーチェーンにキーを保存するCommonCrypto機能を使用することができます。これはIV(初期化ベクトル)を必要とsimmpleパスワードをキーに使用されるべきでないこと

#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. 

注:ここ

は、いくつかのサンプルコードです。良好なセキュリティには、暗号化ルーチンと複数の暗号化ルーチンが必要です。暗号化とスルーコードレビューの知識が必要です。

関連する問題