美文网首页
iOS如何使用MD5加密

iOS如何使用MD5加密

作者: BYQiu | 来源:发表于2016-07-28 00:00 被阅读213次

    在登录注册时,经常采用MD5加密技术对密码,也用于对敏感数据进行加密。本文简单介绍了iOS中MD5加密的使用方式。

    • 简单的MD5加密
    // passwordStr 为密码字符串
    const char * myPassword = [passwordStr UTF8String];   
    unsigned char md5c[16];    
    CC_MD5(myPassword, (CC_LONG)strlen(myPassword), md5c);    
    NSMutableString *md5Str = [[NSMutableString alloc] initWithCapacity:100];
    //md5c[1] -> 0x16;    
    for (int i = 0; i < 16; i++) {        
      [md5Str appendFormat:@"%02x",md5c[i]];
    }
    // md5Str 为加密后的密码
    

    但是这个仅是简单加密后的MD5密码,容易被破解,破解方法可参照
    MD5解密

    • 复杂的MD5解密
      针对于上面的问题,我们可以将上面的代码稍加修改
     const char * myPassword = [passwordStr UTF8String];    
    unsigned char md5c[16];    
    CC_MD5(myPassword, (CC_LONG)strlen(myPassword), md5c);    
    NSMutableString *md5Str = [[NSMutableString alloc] initWithCapacity:100];    
    //    md5c[1] -> 0x16;    
    [md5Str appendFormat:@"%02x",md5c[0]];    
    for (int i = 1; i < 16; i++) {        
    [md5Str appendFormat:@"%02x",md5c[i]^md5c[0]];   
     }
    
    • 正常使用时我们可以定义一个NSString的分类,再需要时进行方便调用,在.m文件中实现方法
    - (NSString *)md5StrXor {    
    const char * myPassword = [self UTF8String];    
    unsigned char md5c[16];    
    CC_MD5(myPassword, (CC_LONG)strlen(myPassword), md5c);    
    NSMutableString *md5Str = [[NSMutableString alloc] initWithCapacity:100];    
    //    md5c[1] -> 0x16;    
    [md5Str appendFormat:@"%02x",md5c[0]];    
    for (int i = 1; i < 16; i++) {       
      [md5Str appendFormat:@"%02x",md5c[i]^md5c[0]];    
    }   
     return [md5Str copy];
    }
    

    相关文章

      网友评论

          本文标题:iOS如何使用MD5加密

          本文链接:https://www.haomeiwen.com/subject/frfajttx.html