您好,登錄后才能下訂單哦!
數據存儲原則
任何應用不能在本地直接存儲與安全相關的用戶信息
任何應用不能向服務器傳輸與安全相關的而用戶信息
常用的加密算法:
MD5:不可逆的算法,用一段數據每次加密后都是一樣的
SHA-1:美國國家安全局設計并使用
MD5算法的實現
需要包含頭文件<CommonCrypto/CommonDigest.h>
步驟:
1)將待加密OC字符串轉化為C語言字符串
2)使用CC_MD5()函數將待加密C語言字符串加密,獲得加密后的數據
3)將加密后的數據,轉化為OC字符串
注意:加密后的數據,每一個字節的值以2位16進制表示的字符串形式作為結果
通常將字符串加密的方法封裝在NSString的分類中,如:
@implementation NSString (MD5Coding) - (NSSting*) MD5 { const char * cStr = self.UTF8String; unsigned char digest[CC_MD5_DIGEST_LENGTH]; CC_MD5(cStr, strlen(cStr), digest); NSMutableString * result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2]; for ( int i=0; i< CC_MD5_DIGEST_LENGTH; i++ ) { [result appendFormat:@"%02x", digest[i]]; } return result; } @end
SHA-1算法加密
使用SHA-1算法加密的步驟和MD5基本類似,使用CC_SHA1()函數代替CC_MD5()函數
@implementation NSString (SHA1Coding) - (NSSting*) SHA1 { const char * cStr = self.UTF8String; NSData * data = [NSData dataWithBytes:cStr length:self.length]; unsigned char digest[CC_SHA1_DIGEST_LENGTH]; CC_SHA1(data.bytes, data.length, digest); NSMutableString * result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH*2]; for ( int i=0; i< CC_SHA1_DIGEST_LENGTH; i++ ) { [result appendFormat:@"%02x", digest[i]]; } return result; } @end
MD5的應用
這兩種算法中,MD5應用最為廣泛
1)本地存儲數據時,如密碼等私密信息存儲在偏好設置中,存儲MD5加密后的
2)緩存文件(如圖片)存儲在緩存文件下,將對應的URL進行MD5加密后作為名字
...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。