iOS中使用MD5加密

作者: jianshu_wl | 来源:发表于2016-04-18 22:52 被阅读7681次

    在iOS中使用MD5加密较简单,需要引入头文件CommonCrypto/CommonDigest.h,我们单独新建一个用于MD5加密的类Encryption,此类继承NSObject
    Encryption.h文件如下:

    #import <Foundation/Foundation.h>
    
    @interface Encryption : NSObject
    //md5加密方法
    + (NSString *)md5EncryptWithString:(NSString *)string;
    @end
    

    Encryption.m文件如下:

    #import "Encryption.h"
    #import <CommonCrypto/CommonDigest.h>
    
    //秘钥
    static NSString *encryptionKey = @"nha735n197nxn(N′568GGS%d~~9naei';45vhhafdjkv]32rpks;lg,];:vjo(&**&^)";
    
    @implementation Encryption
    
    + (NSString *)md5EncryptWithString:(NSString *)string{
        return [self md5:[NSString stringWithFormat:@"%@%@", encryptionKey, string]];
    }
    
    + (NSString *)md5:(NSString *)string{
        const char *cStr = [string UTF8String];
        unsigned char digest[CC_MD5_DIGEST_LENGTH];
        
        CC_MD5(cStr, (CC_LONG)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;
    }
    
    @end
    

    调用Encryption.h中的加密方法进行测试,代码如下:

    //调用Encryption中的加密方法
    NSLog(@"-----%@", [Encryption md5EncryptWithString:@"hello"]);
    

    调试窗口成功输出打印信息:


    注意:在实际工程中,我们不会把 Encryption.m中的秘钥暴露出来,因此实际工程中需要把 Encryption类打包成静态库,只暴露 .h文件用于使用.

    相关文章

      网友评论

      • JaneEyre3X:为啥我打印出来没有转成密文呢? 楼主
      • 61cbb200688a:请问秘钥是怎么得来的
      • 吴德馨:请问那个秘钥是哪里来的?
        菊上一枝梅:自己按键盘输入的,这个一定要保存好
      • Onlyoner:您好,我的项目之前明文密码登录的,现在要做加密的话是不是不行了,老用户不支持加密过的密码了对吧
        goyohol:叫后台 换数据😂
      • 空转风:加密之后如何使用呢?比如我本地存储用户名密码,加密一下,当我要登录的时候我要怎么解密?
        空转风:@牛蛋 那这个的用处是什么呢,如果人家抓包拿到加密后的密码也发送给服务器也可以冒充我不是吗?
        空转风:@牛蛋 原来如此,谢谢
        牛蛋:@年光逝也被僵尸号占了 不需要解密啊 你只要用MD5加密你输入的密码 ,,你的后台服务器存的是你加密后的MD5密码 ,,直接输入你设置的密码就行
      • BBH_Life:请问下密钥长度,格式等在iOS中有特定规定吗
      • 西门欥雪:灰常喜欢

      本文标题:iOS中使用MD5加密

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