在應(yīng)用程序的開(kāi)發(fā)中,數(shù)據(jù)的安全性是非常重要的,但是僅用POST請(qǐng)求提交用戶的隱私數(shù)據(jù)并不能完全解決安全問(wèn)題,今天這篇文章是武林技術(shù)頻道小編和大家分享的淺析iOS-MD5加密的說(shuō)明使用,希望對(duì)你學(xué)習(xí)有幫助!
一、簡(jiǎn)單說(shuō)明
1.說(shuō)明
在開(kāi)發(fā)應(yīng)用的時(shí)候,數(shù)據(jù)的安全性至關(guān)重要,而僅僅用POST請(qǐng)求提交用戶的隱私數(shù)據(jù),還是不能完全解決安全問(wèn)題。
如:可以利用軟件(比如Charles)設(shè)置代理服務(wù)器,攔截查看手機(jī)的請(qǐng)求數(shù)據(jù)
“青花瓷”軟件

因此:提交用戶的隱私數(shù)據(jù)時(shí),一定不要明文提交,要加密處理后再提交
?
2.常見(jiàn)的加密算法
MD5 / SHA / DES / 3DES / RC2和RC4 / RSA / IDEA / DSA / AES
3.加密算法的選擇
一般公司都會(huì)有一套自己的加密方案,按照公司接口文檔的規(guī)定去加密
?
二、MD5
1.簡(jiǎn)單說(shuō)明
MD5:全稱(chēng)是Message Digest Algorithm 5,譯為“消息摘要算法第5版”
效果:對(duì)輸入信息生成唯一的128位散列值(32個(gè)字符)
?
2.MD5的特點(diǎn)
(1)輸入兩個(gè)不同的明文不會(huì)得到相同的輸出值
(2)根據(jù)輸出值,不能得到原始的明文,即其過(guò)程不可逆
?
3.MD5的應(yīng)用
由于MD5加密算法具有較好的安全性,而且免費(fèi),因此該加密算法被廣泛使用
主要運(yùn)用在數(shù)字簽名、文件完整性驗(yàn)證以及口令加密等方面
4.MD5破解
MD5解密網(wǎng)站:http://www.cmd5.com

5.MD5改進(jìn)
現(xiàn)在的MD5已不再是絕對(duì)安全,對(duì)此,可以對(duì)MD5稍作改進(jìn),以增加解密的難度
加鹽(Salt):在明文的固定位置插入隨機(jī)串,然后再進(jìn)行MD5
先加密,后亂序:先對(duì)明文進(jìn)行MD5,然后對(duì)加密得到的MD5串的字符進(jìn)行亂序
總之宗旨就是:黑客就算攻破了數(shù)據(jù)庫(kù),也無(wú)法解密出正確的明文
代碼示例:
?
#define Salt @"fsdhjkfhjksdhjkfjhkd546783765"
@interface HMViewController ()
@end
@implementation HMViewController
- (void)viewDidLoad
{
??? [super viewDidLoad];
???
??? [self digest:@"123"]; //
??? [self digest:@"abc"];
??? [self digest:@"456"];
}
/**
?*? 直接用MD5加密
?*/
- (NSString *)digest:(NSString *)str
{
??? NSString *anwen = [str md5String];
??? NSLog(@"%@ - %@", str, anwen);
??? return anwen;
}
/**
?*? 加鹽
?*/
- (NSString *)digest2:(NSString *)str
{
??? str = [str stringByAppendingString:Salt];
???
??? NSString *anwen = [str md5String];
??? NSLog(@"%@ - %@", str, anwen);
??? return anwen;
}
/**
?*? 多次MD5
?*/
- (NSString *)digest3:(NSString *)str
{
??? NSString *anwen = [str md5String];
???
??? anwen = [anwen md5String];
???
??? NSLog(@"%@ - %@", str, anwen);
??? return anwen;
}
/**
?*? 先加密, 后亂序
?*/
- (NSString *)digest4:(NSString *)str
{
??? NSString *anwen = [str md5String];
???
??? // 注冊(cè):? 123 ----? 2CB962AC59075B964B07152D234B7020
???
??? // 登錄: 123 --- 202CB962AC59075B964B07152D234B70
???
??? NSString *header = [anwen substringToIndex:2];
??? NSString *footer = [anwen substringFromIndex:2];
??? anwen = [footer stringByAppendingString:header];
???
??? NSLog(@"%@ - %@", str, anwen);
??? return anwen;
}
@end
(1)直接使用MD5加密(去MD5解密網(wǎng)站即可破解)
?
?
?

(2)使用加鹽(通過(guò)MD5解密之后,很容易發(fā)現(xiàn)規(guī)律)

(3)多次MD5加密(使用MD5解密之后,發(fā)現(xiàn)還是密文,那就接著MD5解密)

(4)先加密,后亂序(破解難度增加)

三、注冊(cè)和驗(yàn)證的數(shù)據(jù)處理過(guò)程
1.提交隱私數(shù)據(jù)的安全過(guò)程 – 注冊(cè)

2.提交隱私數(shù)據(jù)的安全過(guò)程 – 登錄

以上就是淺析iOS-MD5加密的說(shuō)明使用,更多的相關(guān)介紹請(qǐng)繼續(xù)關(guān)注武林技術(shù)頻道!
新聞熱點(diǎn)
疑難解答
圖片精選