【发布时间】:2021-03-11 18:45:37
【问题描述】:
下午好。
我有这样一个问题。当我在应用商店下载应用时,我会被问到:
“您的应用是为使用加密而设计的,还是包含或包含加密?”。
我有一个私有库,我为每个单独的项目授权。
我获得了项目参数(应用程序名称、BundleID 等)。
我生成(独立、手动)几个密钥,用于 base64 和 AES256。
然后我将这些常量插入到库中。
图书馆有一个安全机制。
每次启动使用我的库的应用程序时,它都会提取一些项目参数,将它们转换为 AES256/base64,并将它们与其常量进行比较。
如果它们不同,则意味着框架被插入到我没有许可使用框架的项目中。
我应该在 iTunes 连接中选择什么?我的应用程序(使用具有盗版保护机制的库)是否使用加密?
附言
我在库中还有一个类,其中包含将 NSString 转换为 NSData 的不同方法,反之亦然。
下面是 .h 文件。我只使用其中的一部分,只是为了检查许可证。
在设备上本地检查许可证!我不会将数据发送到任何地方。
/*-------------------------------------------------
CommonHMAC
--------------------------------------------------*/
@interface NSData (CommonHMAC)
- (NSData*) HMACWithAlgorithm:(CCHmacAlgorithm) algorithm;
- (NSData*) HMACWithAlgorithm:(CCHmacAlgorithm) algorithm key:(id)key;
@end
/*---------------------------------------------------------
CommonCryptor
---------------------------------------------------------*/
@interface NSData (CommonCryptor)
- (NSData*) AES256EncryptedDataUsingKey:(id)key error:(NSError **) error;
- (NSData*) decryptedAES256DataUsingKey:(id)key error:(NSError **) error;
- (NSData*) DESEncryptedDataUsingKey:(id)key error:(NSError **) error;
- (NSData*) decryptedDESDataUsingKey:(id)key error:(NSError **) error;
- (NSData*) CASTEncryptedDataUsingKey:(id)key error:(NSError **) error;
- (NSData*) decryptedCASTDataUsingKey:(id)key error:(NSError **) error;
@end
/*--------------------------------------------------------
CommonDigest
---------------------------------------------------------*/
@interface NSData (CommonDigest)
- (NSData*) MD2Sum;
- (NSData*) MD4Sum;
- (NSData*) MD5Sum;
- (NSData*) SHA1Hash;
- (NSData*) SHA224Hash;
- (NSData*) SHA256Hash;
- (NSData*) SHA384Hash;
- (NSData*) SHA512Hash;
@end
【问题讨论】:
标签: ios swift objective-c xcode app-store-connect