美文网首页
HMAC-SHA1 HMAC-SHA256 两种加密方式

HMAC-SHA1 HMAC-SHA256 两种加密方式

作者: 来敲代码 | 来源:发表于2017-08-10 09:48 被阅读1014次

HMAC (Hash-based Message Authentication Code) 常用于接口签名验证

支持的算法有 md5、sha1、sha256、sha512、adler32、crc32、crc32b、fnv132、fnv164、fnv1a32、fnv1a64、gost、gost-crypto、haval128, haval128,4、haval128,5、haval160,3、haval160,4、haval160,5、haval192,3、haval192,4、haval192,5、haval224,3、haval224,4、haval224,5、haval256,3、haval256,4、haval256,5、joaat、md2、md4、ripemd128、ripemd160、ripemd256、ripemd320、sha224、sha384、snefru、snefru256、tiger128,3、tiger128,4、tiger160,3、tiger160,4、tiger192,3、tiger192,4、whirlpool

HMAC-SHA1 HMAC-SHA256 两种加密方式

只介绍这两种方式 因工程用到所以贴出代码

//HMAC-SHA256 加密
+ (NSString *)hmac:(NSString *)plaintext withKey:(NSString *)key
{
const char *cKey  = [key cStringUsingEncoding:NSASCIIStringEncoding];

const char *cData = [plaintext cStringUsingEncoding:NSASCIIStringEncoding];

unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];

CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);

NSData *HMACData = [NSData dataWithBytes:cHMAC length:sizeof(cHMAC)];

const unsigned char *buffer = (const unsigned char *)[HMACData bytes];

NSMutableString *HMAC = [NSMutableString stringWithCapacity:HMACData.length * 2];

for (int i = 0; i < HMACData.length; ++i){

[HMAC appendFormat:@"%02x", buffer[i]];

}
return HMAC;
}
// HMAC-SHA1
+ (NSString *)hmac_sha1:(NSString *)key text:(NSString *)text{
const char *cKey  = [key cStringUsingEncoding:NSUTF8StringEncoding];

const char *cData = [text cStringUsingEncoding:NSUTF8StringEncoding];

char cHMAC[CC_SHA1_DIGEST_LENGTH];

CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);

NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:CC_SHA1_DIGEST_LENGTH];

NSString *hash = [HMAC base64Encoding];//base64Encoding函数在NSData+Base64中定义(NSData+Base64网上有很多资源)
return hash;
}```

相关文章

  • HMAC-SHA1 HMAC-SHA256 两种加密方式

    HMAC (Hash-based Message Authentication Code) 常用于接口签名验证 支...

  • hmac-sha256 2021-11-02

    hmac-sha256 本质上,hmac-sha256是对字节流进行加密,得到的结果也是字节流而我们可以根据需要,...

  • hmac-sha1加密

    以下代码引用( C语言中的HMAC_SHA1加密方法-源码 )历程,并删掉测试函数,便于自己理解罢了.详细请参考...

  • 公钥、私钥、数字签名和数字证书简介

    公钥、私钥、数字签名和数字证书简介 加密方式 加密方式一共分为两种对称加密和非对称加密 对称加密 加密和解密使用的...

  • 加密方式

    加密方式 1.可加密,可解密 Base64编码 对称加密AES加密DES加密有两种模式,ECB和CBC 非对称加密...

  • 数据传输加密方式

    数据传输加密的方式分为两种 1.对称加密 对称加密是最快速、最简单的一种加密方式,加密与解密用的是同样的密钥,本地...

  • https传输过程

    HTTPS传输过程主要涉及到对称加密和非对称加密两种方式,对称加密用来加密数据内容,非对称加密用来加密对称加密的秘...

  • 客户端-服务器建立安全的传输

    这里使用了两种加密方式,公钥加密和私钥加密两种加密一起来实现。当时是在听droidcon安卓技术大会的时候听微信讲...

  • 前后端交互数据加解密

    1 加密方式介绍 本文提供了一种前后端交互数据的加解密方法,主要涉及了AES和RSA两种加密方式。 AES加密 A...

  • iOS接入快盘的HMAC-SHA1授权认证失败解决方案

    最近帮别人看了一个使用HMAC-SHA1 进行加密授权快盘的一个认证,经过测试,第一步获取 oAuth-token...

网友评论

      本文标题:HMAC-SHA1 HMAC-SHA256 两种加密方式

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