2018-2-13-win10-UWP-Hmac
2024-09-06 02:14:50
title | author | date | CreateTime | categories |
---|---|---|---|---|
win10 UWP Hmac
|
lindexi
|
2018-2-13 17:23:3 +0800
|
2018-2-13 17:23:3 +0800
|
Win10 UWP
|
HMAC是密钥相关的哈希运算消息认证码,输入密钥和信息。
在uwp,Hmac在很多网络使用,我最近写qiniu SDK,把原来C#改为UWP,需要使用HMAC。
上传文件时需要填写 form ,这是官方要求的
<form method="post" action="http://upload.qiniu.com/"
enctype="multipart/form-data">
<input name="key" type="hidden" value="<resource_key>">
<input name="x:<custom_name>" type="hidden" value="<custom_value>">
<input name="token" type="hidden" value="<upload_token>">
<input name="file" type="file" />
<input name="crc32" type="hidden" />
<input name="accept" type="hidden" />
</form>
里面需要凭据,凭据有上传策略,而做这个需要 Hmac,我找了好久才得到,希望大家遇到 Hmac 问题可以在我这里发现解决方法
string str_alg_name = MacAlgorithmNames.HmacSha1;
MacAlgorithmProvider obj_mac_prov = MacAlgorithmProvider.OpenAlgorithm(str_alg_name);
IBuffer buff_msg = CryptographicBuffer.CreateFromByteArray(path_and_query_bytes);
IBuffer buff_key_material = CryptographicBuffer.CreateFromByteArray(mac.SecretKey);
CryptographicKey hmac_key = obj_mac_prov.CreateKey(buff_key_material);
IBuffer hmac = CryptographicEngine.Sign(hmac_key, buff_msg);
byte[] digest = hmac.ToArray();
string str_alg_name = MacAlgorithmNames.HmacSha1;
是从预设的算法中拿出Hmac,而微软有这么多算法:AesCmac、HmacMd5、HmacSha1、HmacSha256、HmacSha384、HmacSha512
MacAlgorithmProvider.OpenAlgorithm
传入使用算法
Hmac 输入是 buffer,如果我们只有 byte 请使用 CryptographicBuffer.CreateFromByteArray
转Buffer
Hmac密钥 obj_mac_prov.CreateKey(buff_key_material)
最后使用 CryptographicEngine.Sign(hmac_key, buff_msg);
最新文章
- VS 自动添加注释
- 利用matlab摄像机标定
- 不用画线 设置UITableView的全屏分隔线
- git tag的使用
- iOS常见的几种延时执行的方法
- 14.4.2 Change Buffer 延迟写
- 你怎么知道你的网站K
- python循环
- .NET Core微服务之基于Polly+AspectCore实现熔断与降级机制
- 5Linux流程控制语句-if、for、while、case语句、计划任务
- mabatis insert into on duplicate key
- Hadoop+HBase 集群搭建
- ABAP-FTP-执行
- PAT 1026 程序运行时间
- Excel VBA语句集
- GET和POST两种基本请求方法的区别(转载)
- [Go] Http / Net 相关资料
- ajax请求,返回值为304 Not Modified 错误原因与解决办法
- J2EE开发之三种项目架构
- KMP 初级板子 待更新