腾讯人脸识别api签名,演示demo

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("1251504741", "", "");
            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", "1251504741");
            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;
        }
        public static string ToHMACSHA1(string encryptText, string encryptKey)
        {
            //HMACSHA1加密
            HMACSHA1 hmacsha1 = new HMACSHA1();
            hmacsha1.Key = System.Text.Encoding.UTF8.GetBytes(encryptKey);
            byte[] dataBuffer = System.Text.Encoding.UTF8.GetBytes(encryptText);
            byte[] hashBytes = hmacsha1.ComputeHash(dataBuffer);
            return Convert.ToBase64String(hashBytes);
        }
        private static string AppSign(string appId, string secretId, string secretKey)
        {
            var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            var currentTime = Convert.ToInt64(ts.TotalSeconds);//当前时间戳,是一个符合 UNIX Epoch 时间戳规范的数值,单位为秒,多次签名时,e 应大于 t
            var expiredTime = Convert.ToInt64((DateTime.UtcNow.AddMinutes(180) - new DateTime(1970, 1, 1, 0, 0, 0, 0)).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, 0, all, 0, hash.Length);
                Array.Copy(pText, 0, all, hash.Length, pText.Length);
                return Convert.ToBase64String(all);
            }
        }
        /// <summary>
        /// 获取随机数
        /// </summary>
        private static int GetRandom()
        {
            var random = new Random();
            var rand = random.Next(10000, 999999999);
            return rand;
        }
    }
}

原文地址:https://www.cnblogs.com/miskis/p/10230972.html

时间: 2024-08-29 17:56:16

腾讯人脸识别api签名,演示demo的相关文章

Python丨调用百度的人脸识别api给你的颜值打个分

需要用到的工具 百度的人脸识别api Flask PIL requests 主要思路 利用的百度的人脸识别库,然后自己做了一个简单的图片上传和图片处理以及信息提取加工. 官网给的方法相对比较繁琐,我使用request改写了一下如下(注意把url里面的Key换成你申请的). 首先,我们不采用图片url的方式,我们直接使用对图片进行编码的形式进行处理.编码的过程如下: 请求的参数构造如下: 其中image是我们上面编码过的结果,imageType是,face_field是我们想要它返回给我们的内容,

人脸识别API接口概述

人脸识别API接口,活体检测技术 人脸识别API接口,活体检测技术产品背景 随着深度学习方法的应用,非思丸人脸识别API接口技术的识别率已经得到质的提升,目前我们的人脸识别API接口率已经达到99%.人脸识别API接口技术与其他生物特征识别技术相吃比,在实际应用中具有天然独到的优势:通过摄像头直接获取,可以非接触的方式完成识别过程,方便快捷.目前我司的人脸识别API接口技术已应用在金融.教育.景区.旅运.社保等领域. 人脸识别API接口,活体检测技术产品简介 人脸识别API接口技术主要分为两部分

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

1.在做一个人脸识别的项目,使用的是讯飞的api,编辑器为AS2.0,运行时报如下错误: FATAL EXCEPTION: main                  Process: com.admin.smartcam, PID: 13821                  java.lang.UnsatisfiedLinkError: Native method not found: com.faceplusplus.api.Native.setMinFaceSize:(II)I    

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

按照董子的这篇博客中的介绍,到微软牛津项目的网站申请到测试用的人脸识别Key,按照官方文档的介绍,把wpf项目建好之后,按照一步步的流程下来就可以完成example中的功能了.但是这仅仅是个example,图片不能太大,不然会出现溢出错误.之前关注过牛津项目,后来不知道竟然中文版的官网也出来了,只是中文的文档翻译的是在是太不堪入目了,不过这也保持了微软的一贯的风格. 我的环境是:win7 64bit+VS2015+.Net4.5+C#PS:最好把 drawingContext.Close();移

人脸识别SDK小结

Face++人脸识别 进入官网 Face++ 致力于研发世界最好的人脸技术,提供免费的API和SDK供企业和开发者调用,更有灵活的定制化服务满足不同需求.已有多家公司使用Face++技术服务,完成包括人脸搜索.定位.识别.智能美化等功能.我们旨在为合作者提供完善的技术与维护服务. 百度媒体云人脸识别 进入官网 百度媒体云人脸识别服务,依托百度业界领先的人脸识别算法,提供了人脸检测.五官定位.人脸属性检测等功能.媒体云人脸识别服务通过提供一系列HTTP Restful API及跨终端平台SDK,实

脸识别API微软牛津项目

微软牛津项目人脸识别API初探 按照董子的这篇博客中的介绍,到微软牛津项目的网站申请到测试用的人脸识别Key,按照官方文档的介绍,把wpf项目建好之后,按照一步步的流程下来就可以完成example中的功能了.但是这仅仅是个example,图片不能太大,不然会出现溢出错误.之前关注过牛津项目,后来不知道竟然中文版的官网也出来了,只是中文的文档翻译的是在是太不堪入目了,不过这也保持了微软的一贯的风格. 我的环境是:win7 64bit+VS2015+.Net4.5+C#PS:最好把 drawingC

微软认知服务开发实践(3) - 人脸识别

前言 人们对人脸识别的研究已经有很长一段时间,起初局限于获取基础的人脸信息,随着机器学习领域的发展,人脸识别的应用更加广泛,已经可以被用于人脸搜索.人脸鉴权等相关应用.本文将针对微软认知服务中提供的人脸识别API的调用方法进行一些初步的讲解. Face API Face API中提供了3方面功能: 人脸检测 人脸分组 人脸识别(搜索) 首先是人脸检测,主要是指传统概念上的人脸识别功能,识别图片中的人的面孔,给出人脸出现的坐标区域,并根据识别出来的人脸分析出一些基本的信息(例如年龄). 其次是人脸

人脸识别如何做到one-shot learning?(转)

来源:http://blog.csdn.net/ice_actor/article/details/78603042 1.什么是人脸识别 ??这部分演示了百度总部大楼的人脸识别系统,员工刷脸进出办公区,在这个演示中主要应用到了人脸识别技术和活体检测. 人脸识别的术语: 1)face verification:输入图像.名字ID判断输入图像是不是名字ID指定的用户 2)face recognition:有一个包含K个用户的数据库,拿到一幅图片,然后判断图片中的人是不是在数据库中,在输出指定用户na

Android人脸识别app——基于Face++,MVP+Retofit+RxJava+Dagger

前言 最近公司项目比较空,花了点时间写了个人脸识别的app,可以查看你的性别.年龄.颜值.情绪等信息,利用的是 Face++ 的人脸识别API.本项目采用了 MVP 的架构,使用了 Retrofit.RxJava.Dagger.EventBus 等框架进行开发和解耦,利用 MaterialDesign 进行UI上的布局设计. 主要的功能就是拍照,然后将照片传至 Face++ 服务器,进行人脸识别,获取返回的信息,对信息进行处理.将人脸在照片上标出,并将信息展示出来. 话不多说,先来看一下 app