在目标 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 中的我的登录页面 kart******* 中显示此文本