您好,登錄后才能下訂單哦!
數(shù)據(jù)存儲(chǔ)原則
任何應(yīng)用不能在本地直接存儲(chǔ)與安全相關(guān)的用戶信息
任何應(yīng)用不能向服務(wù)器傳輸與安全相關(guān)的而用戶信息
常用的加密算法:
MD5:不可逆的算法,用一段數(shù)據(jù)每次加密后都是一樣的
SHA-1:美國(guó)國(guó)家安全局設(shè)計(jì)并使用
MD5算法的實(shí)現(xiàn)
需要包含頭文件<CommonCrypto/CommonDigest.h>
步驟:
1)將待加密OC字符串轉(zhuǎn)化為C語(yǔ)言字符串
2)使用CC_MD5()函數(shù)將待加密C語(yǔ)言字符串加密,獲得加密后的數(shù)據(jù)
3)將加密后的數(shù)據(jù),轉(zhuǎn)化為OC字符串
注意:加密后的數(shù)據(jù),每一個(gè)字節(jié)的值以2位16進(jìn)制表示的字符串形式作為結(jié)果
通常將字符串加密的方法封裝在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()函數(shù)代替CC_MD5()函數(shù)
@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的應(yīng)用
這兩種算法中,MD5應(yīng)用最為廣泛
1)本地存儲(chǔ)數(shù)據(jù)時(shí),如密碼等私密信息存儲(chǔ)在偏好設(shè)置中,存儲(chǔ)MD5加密后的
2)緩存文件(如圖片)存儲(chǔ)在緩存文件下,將對(duì)應(yīng)的URL進(jìn)行MD5加密后作為名字
...
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。