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