摘要:加密算法為現(xiàn)在應(yīng)用最廣泛的哈希算法之一,該算法廣泛應(yīng)用于互聯(lián)網(wǎng)網(wǎng)站的用戶(hù)文件加密,能夠?qū)⒂脩?hù)密碼加密為位的長(zhǎng)整數(shù)。在加密算法中,首先需要對(duì)信息進(jìn)行填充,使其字節(jié)長(zhǎng)度對(duì)求余數(shù)的結(jié)果等于。
MD5加密算法為現(xiàn)在應(yīng)用最廣泛的哈希算法之一,該算法廣泛應(yīng)用于互聯(lián)網(wǎng)網(wǎng)站的用戶(hù)文件加密,能夠?qū)⒂脩?hù)密碼加密為128位的長(zhǎng)整數(shù)。數(shù)據(jù)庫(kù)并不明文存儲(chǔ)用戶(hù)密碼,而是在用戶(hù)登錄時(shí)將輸入密碼字符串進(jìn)行MD5加密,與數(shù)據(jù)庫(kù)中所存儲(chǔ)的MD5值匹配,從而降低密碼數(shù)據(jù)庫(kù)被盜取后用戶(hù)損失的風(fēng)險(xiǎn)。
Md5加密算法原理
MD5加密算法以512位分組來(lái)處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過(guò)了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位散列值。
在MD5加密算法中,首先需要對(duì)信息進(jìn)行填充,使其字節(jié)長(zhǎng)度對(duì)512求余數(shù)的結(jié)果等于448。因此,信息的字節(jié)長(zhǎng)度(Bits Length)將被擴(kuò)展至N512+448,即N64+56個(gè)字節(jié)(Bytes),N為一個(gè)正整數(shù)。
- (NSString *)md5String{ //先轉(zhuǎn)為UTF_8編碼的字符串 const char* str = [self UTF8String]; //設(shè)置一個(gè)接受字符數(shù)組 //md5加密后是128bit, 16 字節(jié) * 8位/字節(jié) = 128 位 unsigned char result[CC_MD5_DIGEST_LENGTH]; /* extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)官方封裝好的加密方法 把str字符串轉(zhuǎn)換成了32位的16進(jìn)制數(shù)列(這個(gè)過(guò)程不可逆轉(zhuǎn)) 存儲(chǔ)到了result這個(gè)空間中 */ CC_MD5(str, strlen(str), result); NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH* 2]; /* x表示十六進(jìn)制,%02X 意思是不足兩位將用0補(bǔ)齊,如果多余兩位則不影響 NSLog("%02X", 0x888); //888 NSLog("%02X", 0x4); //04 */ //將16字節(jié)的16進(jìn)制轉(zhuǎn)成32字節(jié)的16進(jìn)制字符串 for(int i = 0; iMD5加密算法由于其具有較好的安全性,加之商業(yè)也可以免費(fèi)使用該算法,因此該加密算法被廣泛使用,md5加密算法主要運(yùn)用在數(shù)字簽名、文件完整性驗(yàn)證以及口令加密等方面。
md5加密算法c語(yǔ)言版 md5加密算法c語(yǔ)言版
2.SHA算法
- (NSString *)sha1:(NSString *)str { const char *cstr = [str UTF8String]; //使用對(duì)應(yīng)的CC_SHA1,CC_SHA256,CC_SHA384,CC_SHA512的長(zhǎng)度分別是20,32,48,64 unsigned char digest[CC_SHA1_DIGEST_LENGTH]; //使用對(duì)應(yīng)的CC_SHA256,CC_SHA384,CC_SHA512 CC_SHA1(cstr, strlen(cstr), 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; }整理常用加密 iOS 與 Android 加密 MD5-SHA1
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/78339.html
摘要:哈希摘要算法哈希函數(shù)也稱(chēng)散列函數(shù),是一種根據(jù)任意長(zhǎng)度數(shù)據(jù)計(jì)算出固定簽名長(zhǎng)度的算法,比如,系列。除了算法,還存在很多其他形式的哈希函數(shù)算法,比如系列,他們的設(shè)計(jì)思路大體相同。 前言 最近在看一些NPM庫(kù)的時(shí)候總是看到各種哈希簽名算法,之前工作中也有用到過(guò)簽名算法,但并沒(méi)有深入理解過(guò)其中的原理,于是找了點(diǎn)資料稍微了解了一下,總結(jié)了這篇文章。 哈希摘要算法 哈希函數(shù)(也稱(chēng)散列函數(shù)),是一種根...
摘要:加密解密算法介紹算法目前常見(jiàn)有加密算法,散列算法,編碼算法,使用位關(guān)鍵字作為流加密算法加密技術(shù)通常分為兩大類(lèi)對(duì)稱(chēng)式和非對(duì)稱(chēng)式。對(duì)稱(chēng)性加密算法有用途對(duì)稱(chēng)加密算法用來(lái)對(duì)敏感數(shù)據(jù)等信息進(jìn)行加密數(shù)據(jù)加密標(biāo)準(zhǔn),速度較快,適用于加密大量數(shù)據(jù)的場(chǎng)合。 加密解密算法介紹 算法目前常見(jiàn)有: 加密算法,散列算法,Base64(編碼算法),https(SSL使用40位關(guān)鍵字作為RC4流加密算法) 加密技術(shù)通...
摘要:結(jié)論對(duì)用戶(hù)密碼進(jìn)行加密時(shí)需要做到防止用戶(hù)密碼明文被竊聽(tīng)交給,明文傳輸。為什么鹽可以明文存儲(chǔ)攻擊者很難有足夠的計(jì)算資源和存儲(chǔ)空間建立海量的哈希值密碼數(shù)據(jù)庫(kù),針對(duì)單條用戶(hù)記錄,建立哈希值密碼數(shù)據(jù)庫(kù)進(jìn)行攻擊的成本過(guò)高。 摘要 密碼驗(yàn)證是很常見(jiàn)的需求,如何在實(shí)現(xiàn)功能之余,防止用戶(hù)密碼泄露,已經(jīng)有了很成熟的方案。這篇文章把自己的思考和結(jié)論做一下記錄。 結(jié)論 對(duì)用戶(hù)密碼進(jìn)行加密時(shí)需要做到: 防止用...
摘要:所以我們今天只談前端加密,一個(gè)部分人認(rèn)為沒(méi)有意義的工作。在中,認(rèn)證過(guò)程使用了非對(duì)稱(chēng)加密算法,非認(rèn)證過(guò)程中使用了對(duì)稱(chēng)加密算法。非對(duì)稱(chēng)加密上文中我們討論了前端的哈希加密以及應(yīng)用的場(chǎng)景。 showImg(https://segmentfault.com/img/bVAhTC); 當(dāng)然在談安全。 前端安全是Web安全的一部分,常見(jiàn)的安全問(wèn)題會(huì)有XSS、CSRF、SQL注入等,然而這些已經(jīng)在程師...
摘要:所謂對(duì)稱(chēng)加密,就是加密和解密使用同一秘鑰,這也是這種加密算法最顯著的缺點(diǎn)之一。非對(duì)稱(chēng)加密算法由于對(duì)稱(chēng)加密在通信加密領(lǐng)域的缺陷,年和提出了非對(duì)稱(chēng)加密的概念。非對(duì)稱(chēng)加密,其主要缺點(diǎn)之一就是慢,適合加密少量數(shù)據(jù)。 1. 加密的目的 加密不同于密碼,加密是一個(gè)動(dòng)作或者過(guò)程,其目的就是將一段明文信息(人類(lèi)或機(jī)器可以直接讀懂的信息)變?yōu)橐欢慰瓷先](méi)有任何意義的字符,必須通過(guò)事先約定的解密規(guī)則才能將...
閱讀 1002·2021-09-30 09:58
閱讀 2829·2021-09-09 11:55
閱讀 2001·2021-09-01 11:41
閱讀 991·2019-08-30 15:55
閱讀 3350·2019-08-30 12:50
閱讀 3495·2019-08-29 18:37
閱讀 3295·2019-08-29 16:37
閱讀 2011·2019-08-29 13:00