數(shù)據(jù)存儲(chǔ)原則
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)嵐山,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
任何應(yīng)用不能在本地直接存儲(chǔ)與安全相關(guān)的用戶信息
任何應(yīng)用不能向服務(wù)器傳輸與安全相關(guān)的而用戶信息
常用的加密算法:
MD5:不可逆的算法,用一段數(shù)據(jù)每次加密后都是一樣的
SHA-1:美國(guó)國(guó)家安全局設(shè)計(jì)并使用
MD5算法的實(shí)現(xiàn)
需要包含頭文件
步驟:
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加密后作為名字
...