特点
- 不可逆
- 同样的数据加密结果相同
- 加点“盐”
代码实现
static NSString *token=@"&&hjsdfklsa1234";//加"令牌"令牌内容可自由发挥
----------
-(NSString *)MyMD5
{
NSString *str=[NSString stringWithFormat:@"%@%@",self,token];//
return [str MD5];
}
- (NSString *)MD5
{
const char *cStr = [self UTF8String];
unsigned char digest[CC_MD5_DIGEST_LENGTH];
CC_MD5(cStr, strlen(cStr), digest);
NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[result appendFormat:@"%02x", digest[i]];
}
return result;
}
调用
@property (nonatomic, strong) NSString *loginPwd;//声明加密口令
----------
- (NSString *)loginPwd //属性的get方法
{
return [self.userPwd.text MyMD5];//对用户的密码进行加密
}
//对加密的密码调用使用self.loginPwd
小结
MD5加密同样的数据加密结果相同,数据加密的不安全,即可以在此网址http://cmd5.com/ 使用加密的字符串解密出原始数据,所以需要添加令牌保证密码安全