在目标 c 中的 UIIImageView 上显示加密图像

Posted

技术标签:

【中文标题】在目标 c 中的 UIIImageView 上显示加密图像【英文标题】:Display encrypted image on UIIImageView in objective c 【发布时间】:2017-02-15 14:18:35 【问题描述】:

我使用 AES(加密算法)对图像 (png) 进行了加密,并获得了加密的 NSData。我使用FBEncryptor 框架。现在我试图在 UIImageView 上显示它,但它不起作用。这是我的代码:

@interface ImageEncryptingViewController ()

@property (strong, nonatomic) IBOutlet UIImageView *encoptdImg;


@end

@implementation ImageEncryptingViewController



- (void)viewDidLoad 
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    UIImage *img = [UIImage imageNamed:@"image.png"];

    NSData *imageData = UIImagePNGRepresentation(img);

    NSData* encryptedData = [FBEncryptorAES encryptData:imageData key:imageData iv:imageData];

    UIImage *image = [[UIImage alloc]initWithData:encryptedData];

    NSLog(@"%@", encryptedData);

    _encoptdImg.image = image;




最后我想得到加密图像,我们可以看到噪声或其他东西,但看不到原始图像。例如这个website 做它。我需要在 ios 上使用 AES 加密算法。我该如何解决这个问题?有任何想法吗?谢谢。

【问题讨论】:

您无法显示它,因为您对其进行了加密。你想用加密来完成什么? 解密 encryptedData 使用以下方法.. + (NSData*)decryptData:(NSData*)data key:(NSData*)key iv:(NSData*)iv @zaph 我正在尝试获取加密图像。我的意思是我们只能看到噪音或其他东西,但看不到原始图像的图像。 【参考方案1】:

这个问题中的问题是你加密了整个图像文件而不是单独的位图。该文件包含显示图像所需的元信息。 IE。该文件的开头有a signature,以将其标记为PNG。加密文件,您会破坏该签名。

您必须单独加密位图。

这就引出了下一个问题,如何从图像中获取纯位图数据。幸运的是,这个问题在堆栈溢出时得到了多次回答,即。 e. here.

【讨论】:

【参考方案2】:

lunapic.com 使用的是placeholder image 您可以将此类图像作为加密图像的占位符,加密图像将没有任何图像属性以便UIImageView读取它,当用户解密图像时,您可以将解密后的图像放入其中占位符,就是这样

【讨论】:

以上是关于在目标 c 中的 UIIImageView 上显示加密图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在目标c中的UILabel上显示UIImage文件路径

如何在目标c中的多个标签上显示文本文件中的随机单词

如何在目标c中选择PDF文件中的文本?

如何在目标 c 中的我的登录页面 kart******* 中显示此文本

如何在目标 c 中的 JSON 链接中显示一个标签中的 4 个值之一?

目标 C:如何在视图加载时突出显示表格视图中的第一个单元格?