功能场景描述及使用场景本文主要介绍使用Hmac采用SM3摘要算法传入自定义生成的key,获取结果。场景可以传入自定义长度的key去获取mac结果。使用的核心APIHMAC算法规格开发步骤核心代码解释1.设置算法,通过接口createMac生成消息认证码操作实例。2.接受输入对称密钥,通过接口init,初始化Mac。3.接受数据,通过接口update,更新Mac,此步骤可重复。4.通过接口doFinal,返回Mac计算结果。5.将结果转换成十六进制。核心代码如下:import cryptoFramework from '@ohos.security.cryptoFramework'; import buffer from '@ohos.buffer'; @Entry @Component struct Hmac { @State message: string = 'Hello World'; build() { Row() { Column() { Text("HELLO") .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(() => { getHmac("zhpt_inner_test230300json88dd5e57e5eb1f962c3ae950492ebc21093da472844d18d4343accd2ecbdd258d6748f0eedb1b4349d9c4e65d6e778d26985c8c52ab688e39615f4eb4b48693327fd1bf076ba697598013e71cf50aee8b64f736f7c5fe771ce0ad9bde8e80e623ef17dc0db0d626c2a24ad70955a911a80b0efb4760b8a7b14fd5283b5896f1350e9fd6ef2aa29d11c5d779e364f9938939768fc981040155cc853886e0915243a6636d2b711159680a287cb815d4bf670b7ef8c64f5f3c0e78445ed17dfc7092b550222b72f49e834a7974e3918d14048f7c89c2cf42387ba226018bcc2547e7800107dbe540bea84d68602d53774f0d3f356b19e04267d146bb5151fdac678f136a3df9ce87c4f35b50658f58171395017f49f6d56b5af91b9be90d7e290c0558bd912b2be5688c4b7e41264a92e8017029533150963.2") }) } .width('100%') } .height('100%') } } // 可理解的字符串转成字节流 function stringToUint8Array(str: string) { let arr = new Uint8Array(str.length); for (let i = 0, j = str.length; i < j; ++i) { arr[i] = str.charCodeAt(i); } return arr; } async function getHmac(message:string){ try { let macAlgName = "SM3"; let mac =cryptoFramework.createMac(macAlgName) let arr = stringToUint8Array("30a86dc9056c44cc05420fec269270214bbb6914954e871e83771c9810ac1db0") let KeyBlob: cryptoFramework.DataBlob = {data:arr}; let symKeyGenerator = cryptoFramework.createSymKeyGenerator("HMAC"); const symKey=await symKeyGenerator.convertKey(KeyBlob); await mac.init(symKey) await mac.update({data:stringToUint8Array(message)}); let macOutpt= await mac.doFinal(); const res=buffer.from(macOutpt.data).toString('hex'); console.log("Hmac---:"+res); }catch (err){ console.log("err:"+err) } }实现效果适配的版本信息IDE:DevEco Studio 4.1.1.300SDK:HarmoneyOS 4.0.10.15
功能场景描述及使用场景
本文主要介绍使用Hmac采用SM3摘要算法传入自定义生成的key,获取结果。
可以传入自定义长度的key去获取mac结果。
使用的核心API
HMAC算法规格
开发步骤
核心代码解释
1.设置算法,通过接口createMac生成消息认证码操作实例。
2.接受输入对称密钥,通过接口init,初始化Mac。
3.接受数据,通过接口update,更新Mac,此步骤可重复。
4.通过接口doFinal,返回Mac计算结果。
5.将结果转换成十六进制。
核心代码如下:
实现效果