国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS 利用MD5或SHA1加密算法給字符串加密

2019-11-06 09:42:01
字體:
來源:轉載
供稿:網友

md5加密算法多用于文件的驗證, 比如說登錄密碼的匹配就是利用MD5的加密方式,還比如說安卓手機刷ROM包, windows封裝系統等為了防止他人對文件進行篡改,都有使用MD5加密對其驗證.

SHA1用的不多,這里也做個使用筆記。

下面介紹一下MD5加密實現方法:因為我們是要給字符串進行MD5加密,所以我們可以使用Catagory給Nsstring類擴展一個 MD5加密的功能

首先創建一個Catagory類

在.h里面建立一個方法

@interface NSString (MD5)- (NSString *)stringToMD5:(NSString *)str;-(NSString*) sha1:(NSString *)str;@end

在.m里實現方法

#import "NSString+MD5.h"#import <CommonCrypto/CommonCrypto.h>/*記得要導入這個框架和它的頭文件*/@implementation NSString (MD5)- (NSString *)stringToMD5:(NSString *)str{//1.首先將字符串轉換成UTF-8編碼, 因為MD5加密是基于C語言的,所以要先把字符串轉化成C語言的字符串    const char *fooData = [str UTF8String];//2.然后創建一個字符串數組,接收MD5的值    unsigned char result[CC_MD5_DIGEST_LENGTH];//3.計算MD5的值, 這是官方封裝好的加密方法:把我們輸入的字符串轉換成16進制的32位數,然后存儲到result中    CC_MD5(fooData, (CC_LONG)strlen(fooData), result);// CC_MD5(fooData, (unsigned int)strlen(fooData), result);    /**    第一個參數:要加密的字符串    第二個參數: 獲取要加密字符串的長度    第三個參數: 接收結果的數組    *///4.創建一個字符串保存加密結果    NSMutableString *saveResult = [NSMutableString string];// NSMutableString *saveResult = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];//5.從result 數組中獲取加密結果并放到 saveResult中    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {        [saveResult appendFormat:@"%02x", result[i]];    }    /*       x表示十六進制,%02X  意思是不足兩位將用0補齊,如果多余兩位則不影響        NSLog("%02X", 0x888);  //888        NSLog("%02X", 0x4); //04       x大寫或小寫,輸出也會相應轉成大寫或小寫     */    return saveResult;}
//sha1 encode-(NSString*) sha1:(NSString *)str{    const char *cstr = [str cStringUsingEncoding:NSUTF8StringEncoding];    NSData *data = [NSData dataWithBytes:cstr length:str.length];        uint8_t digest[CC_SHA1_DIGEST_LENGTH];        CC_SHA1(data.bytes, (unsigned int)data.length, digest);        NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];        for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)        [output appendFormat:@"%02x", digest[i]];        return output;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰坪| 临汾市| 宁陕县| 三亚市| 买车| 新丰县| 利辛县| 东乌珠穆沁旗| 苗栗市| 大连市| 江油市| 通渭县| 海阳市| 牡丹江市| 辉县市| 永丰县| 达拉特旗| 司法| 墨脱县| 平和县| 堆龙德庆县| 龙江县| 通许县| 肃北| 盖州市| 乐安县| 瓦房店市| 宁化县| 三门峡市| 顺义区| 高青县| 雷波县| 来安县| 交口县| 宣武区| 河北区| 疏附县| 旅游| 永昌县| 万盛区| 崇明县|