2018-06-01HMAC-MD5加密

带秘钥的Hmac-MD5加密,在网上找到一个例子。

- (NSString*)LJHMACMD5:(NSString*)data key:(NSString*)key {

    NSData *datas = [data dataUsingEncoding:NSUTF8StringEncoding];

    size_tdataLength = datas.length;

    NSData *keys = [key dataUsingEncoding:NSUTF8StringEncoding];

    size_tkeyLength = keys.length;

    unsigned char result[CC_MD5_BLOCK_BYTES];

    CCHmac(kCCHmacAlgMD5, [keysbytes], keyLength, [datasbytes], dataLength, result);

    NSString*newHexStr =@"";

    for(inti =0; i

        NSString*append = [NSStringstringWithFormat:@"%x",result[i]&0xff];

        if(append.length==1) {

            append = [NSStringstringWithFormat:@"0%@",append];

        }

        newHexStr = [newHexStrstringByAppendingString:append];

    }

    returnnewHexStr;

}

需要导入头文件#import

其中返回的result要转成16进制的字符串,使用了[NSString stringWithFormat:@"%x",result[i]&0xff]这个方法,但是当十六进制数小于16是,高位需要补0,所以做了个判断,前边添加0。

HMAC-SHA1算法应该类似,将kCCHmacAlgMD5转成kCCHmacAlgSHA1即可(没有实际测试过)。

这样我们的APP在请求数据的时候安全性更加高了。

你可能感兴趣的:(2018-06-01HMAC-MD5加密)