錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
iOS一些常用的加密介紹

作者: 佚名  日期:2017-04-17 14:09:46   來源: 本站整理

 在iOS開發中(應該說在所有的開發中),數據的安全性都是非常重要的。下面就簡單的說一下數據加密的一些方式。

MD2 、MD3、 MD4 、MD5 (MD6) Message-Digest Algorithm(信息-摘要算法),現在主要是MD5,前面的由于存在缺陷就被淘汰啦,而MD6的話現在還處于測試階段。 具體的算法的更深層次的介紹請移步Google。

SHA1 、SHA224 、SHA256 、SHA384 、SHA512 安全哈希算法 (安全散列算法)(Secure Hash Algorithm),散列是信息的提煉,通常其長度要比信息小得多,且為一個固定長度。加密性強的散列一定是不可逆的,這就意味著通過散列結果,無法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將導致散列結果的明顯變化,這稱之為雪崩效應。散列還應該是防沖突的,即找不出具有相同散列結果的兩條信息。具有這些特性的散列結果就可以用于驗證信息是否被修改。 查看更多介紹

HmacMD5 、HmacSHA1 、HmacSHA224 、HmacSHA256 、HmacSHA384 、HmacSHA512 這些加密算法和上邊的相比較的話,區別就在于這些需要一個秘鑰去和消息輸入,生成消息摘要作為輸出。這些加密用在服務器驗證客戶端非常合適:

客戶端發送請求之后,服務器收到返回一個隨機數,同時在會話中保存該隨機數,客戶端將信息和返回的隨機數用這些算法簽名發送給服務器,服務器用剛才記錄的隨機數和去數據庫讀取相應信息(如用戶名密碼)采用同樣的散列算法加密和客戶端傳過來的簽名信息對比,從而驗證客戶端是否合法(被攔截篡改等)。 更多介紹

RSA 公鑰加密算法,加密方使用公鑰加密,解密方持有私鑰解密,公鑰和私鑰是唯一匹配的,但是有公鑰是無法計算出私鑰的。該加密算法可以公開加密算法和公鑰。用在服務器驗證客戶端也是非常的nice。

上面的加密算法除了 RSA都是不可逆加密,再看一下下面的可逆加密算法:

DES 、3DES 、AES 、RC2、RC4、RC2、CAST、Blowfish。通過秘鑰和初始化向量采用一直加密模式進行加密。加密模式如下幾種:

ECB模式,相對簡單,易于實現,相同的明文產生相同密文,所以安全性相對沒那么高,該模式下初始化向量會被忽略。 CBC模式,需要初始化向量,誤差會傳遞,安全性高于ECB模式。 CFB模式,需要初始化向量,隱藏了明文模式,容易造成錯誤傳播,加密的速率有所降低。 OFB模式,不利于并行化處理,克服了誤差傳遞的問題。 更多模式詳細信息

以上算法在iOS中的實現

好在上面的算法Apple都是為我們實現了,我們只需要調用相應的接口即可。在這里我們自己寫了一個接口,對加密算法進行一點封裝,更利于項目中使用(主要是系統的C函數N個參數,看起來累啊!)。

首先我們枚舉了加密方式

1
typedef NS_ENUM(NSInteger, HCDStringEncryptType) { HCDStringEncryptTypeMD2 = 0, HCDStringEncryptTypeMD4, HCDStringEncryptTypeMD5, HCDStringEncryptTypeSHA1, HCDStringEncryptTypeSHA224, HCDStringEncryptTypeSHA256, HCDStringEncryptTypeSHA384, HCDStringEncryptTypeSHA512, HCDStringEncryptTypeHmacMD5, //可以有密鑰 HCDStringEncryptTypeHmacSHA1, //可以有密鑰 HCDStringEncryptTypeHmacSHA256, //可以有密鑰 HCDStringEncryptTypeHmacSHA384, //可以有密鑰 HCDStringEncryptTypeHmacSHA512, //可以有密鑰 HCDStringEncryptTypeHmacSHA224, //可以有密鑰 HCDStringEncryptTypeRC2 = 100, // /*****************************/ HCDStringEncryptTypeRC4, // /*****************************/ HCDStringEncryptTypeAES, // /*****************************/ HCDStringEncryptTypeAES128, // /*** using default ECB mode **/ //AES目前只支持AES、AES128 HCDStringEncryptTypeDES, // /***** 初始化向量iv會被忽略 ****/ HCDStringEncryptType3DES, // /*****************************/ HCDStringEncryptTypeCAST, // /*****************************/ HCDStringEncryptTypeBlowfish, // /*****************************/};

然后定義了這么一個接口

1
@interface HCDStringEncryptObject : NSObject- (nullable HCDStringEncryptObject *)initWithOriginString:(nullable NSString *)originString keyString:(nullable NSString *)keyString encryptType:(HCDStringEncryptType)encryptType isBase64:(BOOL)base64;- (void)base64 NS_AVAILABLE(10_9, 7_0);- (void)base64Decode NS_AVAILABLE(10_9, 7_0);/** * 針對可逆加密的解密方法 */- (void)decode;@property (nonatomic,readonly,getter=isBase64) BOOL base64;@property (nonatomic,readonly) HCDStringEncryptType encryptType;@property (strong, nonatomic, nullable,readonly) NSString *keyString;@property (strong, nonatomic, nullable,readonly) NSString *originString;@property (strong, nonatomic, nullable,readonly) NSString *encryptedString; //解密之后和originString 一樣@property (strong, nonatomic, nullable,readonly) NSData *encryptedData; //解密之后是originString的NSData@end

這樣的話我們就能得到加密的方式,加密之后的data以及加密之后的字符串,同時還可以選擇是否進行base64編碼等非常方便,至于實現的話,主要是調用系統的加密實現,然后再整。一定要記得導入#import 哦



熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數和判...
  • IIS 8 開啟 GZIP壓縮來減少網絡請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅動時提示不包含數字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 无码福利一区二区三区| 中文无码久久精品| 亚洲AV无码一区二区三区电影| 无码一区二区三区| 国产乱人伦中文无无码视频试看| 国产精品无码一区二区三区毛片| 亚洲av中文无码| 久久精品中文无码资源站| 影音先锋无码a∨男人资源站| 亚洲乱码无码永久不卡在线 | 亚洲最大av资源站无码av网址| 成人免费无码大片A毛片抽搐| 无码av免费一区二区三区试看| 免费无码一区二区三区蜜桃大 | 无码午夜成人1000部免费视频 | 国产白丝无码免费视频| 国产精品无码亚洲精品2021 | 精品无码国产自产在线观看水浒传 | 狠狠躁狠狠爱免费视频无码| 亚洲国产精品无码中文lv| 超清无码一区二区三区| 人妻少妇精品无码专区漫画| 无码专区—VA亚洲V天堂| 一本加勒比HEZYO无码资源网| 精品无码久久久久久久动漫| 亚洲欧洲免费无码| 在线看片福利无码网址| 台湾无码一区二区| 亚洲熟妇无码AV在线播放| 亚洲男人第一无码aⅴ网站| 毛片无码一区二区三区a片视频| 精品国产一区二区三区无码| 无码日韩人妻精品久久蜜桃 | 亚欧无码精品无码有性视频| 精品无码久久久久久久久水蜜桃| 亚洲中文无码永久免| 中文字幕人成无码人妻| 亚洲精品无码专区在线| 无码中文字幕av免费放| 亚洲最大av资源站无码av网址 | 国产在线拍偷自揄拍无码|