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. jsp九大内置对象之一request

    request对象,目的是用来获取客户端的请求. 主要方法有: request.getMethod();                      // 获取提交请求的方式 request.getPr ...

  2. 福大软工 Alpha 事后诸葛亮

    写在前面 林燊大哥 一路走来,好不容易,终于完结了. 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决的问题 用户在进店之前无法得知店铺的优劣 ...

  3. 1001 A+B

    代码链接 PDF链接 首先要说的是这道题的难点是如何把数字输出加入逗号,毕竟数据范围并没有超过Long.当然这个难点也不是问题,将数字转为字符串,C中就有这样的函数,然后再用 %3==0 这样来控制输 ...

  4. 22_IO_第22天(File、递归)_讲义

    今日内容介绍 1.File 2.递归 xmind:下载地址: 链接:https://pan.baidu.com/s/1Eaj9yP5i0x4PiJsZA4StQg 密码:845a 01IO技术概述 * ...

  5. angularJS1笔记-(8)-内置指令

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  6. n位格雷曼实现

    参考: 格雷码的实现 问题:产生n位元的所有格雷码.   格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同. 例如以下为 ...

  7. Scrum 5.0

    5.0--------------------------------------------------- 1.团队成员完成自己认领的任务. 2.燃尽图:理解.设计并画出本次Sprint的燃尽图的理 ...

  8. Scrum 项目 4.0-5.0-约教网站开发(一)

    ----------------------------------4.0----------------------------------------------- 一.项目任务 1.准备看板. ...

  9. 评论alpha发布

    第一组:新蜂小组 题目:俄罗斯方块 评论:很荣幸被邀请体验此游戏,感到加速下落时不是很灵敏,没有计分,页面不够美观(据说还在改善),整体框架已完成,基本功能已具备. 第二组:天天向上 题目:连连看 评 ...

  10. Genymotion-ARM-Translation_v1.1安装报“an error occured while deploying the file”

    如上图,在将Genymotion-ARM-Translation_v1.1.zip拖动Genymotion虚拟机中报了图中错误,在百度后找到了解决办法,下面是我的操作步骤 1.下载re管理器之类的ap ...