2
我需要开发一个手机应用程序(android | iphone),下载一些mp3音乐并存储在用户手机上,但我需要确保用户不分发该mp3。我需要一种方法来加密这些文件。
我可以做些什么?加密mp3文件
感谢
我需要开发一个手机应用程序(android | iphone),下载一些mp3音乐并存储在用户手机上,但我需要确保用户不分发该mp3。我需要一种方法来加密这些文件。
我可以做些什么?加密mp3文件
感谢
可以使用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.
注意,这需要静脉(初始化矢量)和simmple密码不应该被用于密钥。良好的安全性需要超过几个加密例程,它需要很好的密码学知识和通过代码审查。
你可以对它们进行加密,只需生成一个pgp/des/... etc密钥并加密这些文件,并在需要播放时对它们进行解密。 –
如果你加密它们,你必须在播放时解密它们。如果你解密某个东西,你需要密钥,如果你在设备上有密钥,那么有人可能得到那个密钥。如果您希望您的文件受到分发保护,请不要分发它。 – gcochard
@Greg没有发布并不是一个现实的解决方案,类似于信用卡公司选择不发行卡或不提供任何安全性。有一个提供良好安全性的中间地带,可以大大减少损失。 – zaph