using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
String authHost = "https://recognition.image.myqcloud.com/face/compare";
uint rdm = (uint)Math.Abs(new Random().Next());
var sign = AppSign("", "", "");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Host = "recognition.image.myqcloud.com";
client.DefaultRequestHeaders.Add("Authorization", $"Basic {sign}");
var jsArr = new Dictionary<string, object>();
jsArr.Add("appid", "");
jsArr.Add("urlA", "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1547392505&di=829f4486e205b95c072970acaba924ca&imgtype=jpg&er=1&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201409%2F09%2F20140909220439_myxuV.jpeg");
jsArr.Add("urlB", "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1547392532&di=9dd58cd8356f5e90eda00e53183f1a81&imgtype=jpg&er=1&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201508%2F14%2F20150814165156_iAvkx.jpeg");
HttpContent str = new StringContent(JsonConvert.SerializeObject(jsArr));
str.Headers.Remove("Content-Type");
str.Headers.Add("Content-Type", "application/json");
HttpResponseMessage response = client.PostAsync(authHost, str).Result;
String result = response.Content.ReadAsStringAsync().Result;
}
private static string AppSign(string appId, string secretId, string secretKey)
{
var ts = DateTime.UtcNow - new DateTime(, , , , , , );
var currentTime = Convert.ToInt64(ts.TotalSeconds);//当前时间戳,是一个符合 UNIX Epoch 时间戳规范的数值,单位为秒,多次签名时,e 应大于 t
var expiredTime = Convert.ToInt64((DateTime.UtcNow.AddMinutes() - new DateTime(, , , , , , )).TotalSeconds);//签名的有效期,是一个符合 UNIX Epoch 时间戳规范的数值,单位为秒;单次签名时,e 必须设置为 0
string plainText = $"a={appId}&b=&k={secretId}&e={expiredTime}&t={currentTime}&r={GetRandom()}&f=";
return Hmacsha1Encrypt(plainText, secretKey);
}
/// <summary>
/// HMACSHA1算法加密
/// </summary>
private static string Hmacsha1Encrypt(string encryptText, string encryptKey)
{
using (HMACSHA1 mac = new HMACSHA1(Encoding.UTF8.GetBytes(encryptKey)))
{
var hash = mac.ComputeHash(Encoding.UTF8.GetBytes(encryptText));
var pText = Encoding.UTF8.GetBytes(encryptText);
var all = new byte[hash.Length + pText.Length];
Array.Copy(hash, , all, , hash.Length);
Array.Copy(pText, , all, hash.Length, pText.Length);
return Convert.ToBase64String(all);
}
}
/// <summary>
/// 获取随机数
/// </summary>
private static int GetRandom()
{
var random = new Random();
var rand = random.Next(, );
return rand;
}
}
}

【c#】腾讯人脸识别api签名的更多相关文章

  1. 免费人脸识别APi

    今天对应一些免费的人脸识别的api 做了一下简单的对比,觉得百度开发出来的人脸识别接口还是最符合的我的要求,简单易用,容易上手. 据说百度的一些门禁也使用上了人脸识别的功能了,功能很强大,而且能识别出 ...

  2. 转《trackingjs+websocket+百度人脸识别API,实现人脸签到》流程

    先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百 ...

  3. 某简单易懂的人脸识别 API 的开发环境搭建和简易教程

    最近接了个人脸识别相关的项目,是基于某个非常简单易懂的人脸识别 API:face_recognition 做的.这个库接口非常傻瓜,很适合新手上手,而且可以研究其源码来学习 dlib 这个拥有更加灵活 ...

  4. 微信公众平台消息接口开发(24)图片识别之人脸识别API

    微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 图片识别 人脸识别 API 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archi ...

  5. trackingjs+websocket+百度人脸识别API,实现人脸签到

    在公司做了个年会的签到.抽奖系统.用java web做的,用公司的办公app扫二维码码即可签到,扫完码就在大屏幕上显示这个人的照片.之后领导让我改得高大上一点,用人脸识别来签到,就把扫二维码的步骤改成 ...

  6. android 使用讯飞人脸识别api报错:java.lang.UnsatisfiedLinkError

    1.在做一个人脸识别的项目,使用的是讯飞的api,编辑器为AS2.0,运行时报如下错误: FATAL EXCEPTION: main                  Process: com.adm ...

  7. python 与 百度人脸识别api

    用python来做人脸识别代码量少 思路清晰, 在使用之前我们需要在我们的配置的编译器中通过pip       install baidu-aip  即可 from aip import AipFac ...

  8. 百度人脸识别api及face++人脸识别api测试(python)

    一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...

  9. 微软牛津项目人脸识别API初探

    按照董子的这篇博客中的介绍,到微软牛津项目的网站申请到测试用的人脸识别Key,按照官方文档的介绍,把wpf项目建好之后,按照一步步的流程下来就可以完成example中的功能了.但是这仅仅是个examp ...

随机推荐

  1. 进阶系列(5)—— C#XML使用

    一.XML介绍 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨 ...

  2. C++自学随笔(2)

    引用 就像人的别名,人不能只有别名,变量也不能只有引用. 指针类型的引用:*&指针引用名 = 指针. 如int a = 10;int *p =&a;int *&q =p1 co ...

  3. mysql hibernate 关于默认值

    字段的默认值 写 NOT NULL DEFAULT 0 等等 一直不行, 算了  干脆在创建的时候 在代码set好了 版权声明:本文为博主原创文章,未经博主允许不得转载.

  4. C#编程之神奇程序找数

    C#编程之神奇程序找数 问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分 ...

  5. Beta版本发布140字评论

    1.飞天小女警组: 礼物挑选工具:系统界面十分新颖,相比于前阶段,增加了账号登陆的功能,并且还根据不同的价位区间添加了礼物的图片,并根据礼物的受欢迎程度添加了top10的功能,并且增加了关于本网站的问 ...

  6. python的N个小功能(图片预处理:打开图片,滤波器,增强,灰度图转换,去噪,二值化,切割,保存)

    ############################################################################################# ###### ...

  7. 2018 南京icpc现场赛总结

    Day 0 提前5个小时从学校出发,在登机口坐下时,飞机还有1个多小时起飞. 航班准时起飞,到了南京以后直接坐地铁到学校附近(南京地铁票也太精致了吧). 因为天已经黑了,就只在学校附近转了一圈就回酒店 ...

  8. 【bzoj5084】hashit 广义后缀自动机+树链的并+STL-set

    题目描述 你有一个字符串S,一开始为空串,要求支持两种操作 在S后面加入字母C 删除S最后一个字母 问每次操作后S有多少个两两不同的连续子串 输入 一行一个字符串Q,表示对S的操作 如果第i个字母是小 ...

  9. springmvc+mybatis 处理图片(一):上传图片

    一直觉得上传图片文件之类的很难,所以最后才处理图片,发现也并没有那么难,开始正文. 思路:将前台上传的file存到MutipartFile类型字段中,再将MulipartFile转换为pojo类中的b ...

  10. PGM学习之七 MRF,马尔科夫随机场

    之前自己做实验也用过MRF(Markov Random Filed,马尔科夫随机场),基本原理理解,但是很多细节的地方都不求甚解.恰好趁学习PGM的时间,整理一下在机器视觉与图像分析领域的MRF的相关 ...