密码加密MD5
- 创建NSString的类目
-
NSString+Password.h
1 // 2 // NSString+Password.h 3 // 03.数据加密 4 // 5 // Created by wyh on 15-1-10. 6 // Copyright (c) 2015年 itcast. All rights reserved. 7 // 8 9 10 #import <Foundation/Foundation.h> 11 12 @interface NSString (Password) 13 14 /** 15 * 32位MD5加密 16 * 17 * @return 32位MD5加密结果 18 */ 19 - (NSString *)MD5; 20 21 /** 22 * SHA1加密 23 * 24 * @return SHA1加密结果 25 */ 26 - (NSString *)SHA1; 27 28 @end
- NSString+Password.m
1 // 2 // NSString+Password.m 3 // 数据加密 4 // 5 // Created by wyh on 15-1-10. 6 // Copyright (c) 2015年 itcast. All rights reserved. 7 // 8 9 #import "NSString+Password.h" 10 #import <CommonCrypto/CommonDigest.h> 11 12 @implementation NSString (Password) 13 14 #pragma mark 使用MD5加密字符串 15 - (NSString *)MD5 16 { 17 const char *cStr = [self UTF8String]; 18 unsigned char digest[CC_MD5_DIGEST_LENGTH]; 19 20 CC_MD5(cStr, strlen(cStr), digest); 21 22 NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; 23 24 for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { 25 [result appendFormat:@"%02x", digest[i]]; 26 } 27 28 return result; 29 } 30 31 #pragma mark 使用SHA1加密字符串 32 - (NSString *)SHA1 33 { 34 const char *cStr = [self UTF8String]; 35 NSData *data = [NSData dataWithBytes:cStr length:self.length]; 36 uint8_t digest[CC_SHA1_DIGEST_LENGTH]; 37 38 CC_SHA1(data.bytes, data.length, digest); 39 40 NSMutableString *result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; 41 42 for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) { 43 [result appendFormat:@"%02x", digest[i]]; 44 } 45 46 return result; 47 } 48 49 @end
-
使用步骤:
-
在使用的类中加入类目:#import "NSString+Password.h"
-
用要加密的字符串调方法MD5或SHA1,返回加密后的字符串:加密结果=[self.userPwd.text MD5];
-
结束
- 简介
-
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321
-
MD5用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现MD5的典型应用是对一段字节串产生指纹,以防止被“篡改”。例如,可以对一个readme.txt生成一个MD5的值并记录在案,如果其他人修改了文件中的任何内容,对该文件重新计算的MD5值会发生变化MD5还广泛用于操作系统的登录认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面
-
MD5是不可逆
-
MD5同样的数据加密结果是一样的?密码上的一个忌讳
-
MD5在用的时候要加点”盐”及私钥,不然会被破解,最好定义一个宏,来存添加的那部分字符串
-
破解网站:http://www.cmd5.com