iOS之關於開發的那點破事(一)

來源:互聯網
上載者:User

標籤:cimage   repr   app   受限   strong   href   color   類型   nsstring   

前言:

前段時間,經理突然找我說:能不能在項目中對緩衝的圖片進行加密?當時就感到疑惑,就說:可以是可以,但為什麼要這樣做?有什麼意義沒?

我們都知道,apple使用的是沙箱(sandbox)機制,這種機制是:在受限的安全環境中運行應用程式的一種做法,而這種做法是要限制授予應用程式的代碼存取權限。

所以才有這樣的疑問:為什麼還要對緩衝的圖片加密呢?於是經理立馬打電話對客戶說了原因,覺得沒必要再做加密。但得到的回答是:有越獄的手機可以看到。。。。我那個無語啊??。

沒辦法,那就想辦法唄。立馬想到的是兩種方案:

1)網路請求下來的圖片網址(imgUrl)手動加密儲存。

2)修改第三方庫(例如:EMAsyncImageViewSDWebImage等)。

下面一個個說一下:

1、網路請求下來的圖片網址( imgUrl)手動加密儲存

大概的代碼是這樣的:

 UIImage *image = [[UIImage alloc]init];        NSData *imageData = UIImagePNGRepresentation(image);        //加密成data類型    NSData *base64Data = [imageData base64EncodedDataWithOptions:0];        //加密成字串    NSString *base64String = [imageData base64EncodedStringWithOptions:0];

然後對data或者base64String 儲存到本地就行了。讀取時先進行解密,在使用就可以了

具體的base64加解密可以看 Base64加密和DES加密、以及JAVAiOSDES加密統一性問題

2、修改第三方庫(例如:EMAsyncImageView、SDWebImage等)

這種方案就比較麻煩了,當然這種麻煩不是說修改比較麻煩,以後的維護也是問題。

2.1、EMAsyncImageView

這個庫比較早了,估計除了老的項目,現在使用的就不多了。值得一提的事:這個庫並不像SDWebImage一樣,它是直接返回的imageView

使用大抵就是這樣:

#import "EMAsyncImageView.h"@property (weak, nonatomic)EMAsyncImageView   *imageView;imageView.imageUrl = [NSURL URLWithString:imgUrl]; 
2.2、SDWebImage

SDWebImage的使用,現在來說事比較多的,很是受歡迎,也很是簡單。

Objective-C:   #import <SDWebImage/UIImageView+WebCache.h>//(我使用時添加的標頭檔:#import "UIImageView+WebCache.h")  [imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]                 placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

對於使用就不多說了。我這裡說一下思路吧。如果有看過SDWebImage就會知道。這個圖也對圖片首次載入進行緩衝的,緩衝後,下次載入就直接從本地讀取了,這樣做的好處不言而喻。並且為了保證圖片的唯一性:SDWebImage的做法是對圖片的名字進行加密,以此確保圖片的唯一性。

那麼現在步入正題:怎樣在SDWebImage緩衝的圖片進行加密呢?其實做法很簡單,方法是和手動圖片加密一樣的。至於關聯SDWebImage裡面的代碼,這點是關鍵。

但這樣做只有弊端是:已有的多重專案修改繁瑣、項目維護困難。

 3、iOS--越獄檢測

之後是這樣回複經理的:這種功能可以實現,但費時費力,也不好維護。這隻是一個為了防止越獄手機使用的功能,付出與效果不成正比(畢竟越獄手機佔少數)。

但問題還在呢,於是有了另一個想法:對項目進行防越獄。app對手機進行越獄檢測:如果是越獄手機,無法安裝app

到這裡這件破事才算告一段落。。。。。。。??????????????????

具體的防越獄方法我就不一一列出了,可以看這裡,挺詳細的:iOS越獄檢測總結及代碼實現(JailBreak)

 

iOS之關於開發的那點破事(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.