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 <CommonCrypto/CommonHMAC>

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容