1. 程式人生 > >Python 和 PHP 對騰訊雲簽名 hmac_sha256 演算法實現

Python 和 PHP 對騰訊雲簽名 hmac_sha256 演算法實現

開宗明義,米撲科技在使用騰訊雲的API介面簽名中,按照官方示例開發PHP、Python的介面,經常會提示簽名錯誤

123456789{"Response": {"Error": {"Code": "InvalidParameter.SignatureFailure","Message": "The provided credentials could not be validated. Please check your signature is correct."},"RequestId": "1ee6ae98-a971-ad9f-4ecc-abcd69ea1234"}}

本文原文,請參見米撲部落格:

經過多次嘗試探究,發現原因有二:

1)騰訊雲官方示例不嚴謹,沒有urlencode() 或 urllib.quote() 編碼導致提示簽名錯誤

2)騰訊官方只提供了PHP示例,沒有提供Python示例,兩者簽名函式有一些細節

直接給出乾貨,下面示例是 米撲科技 封裝好的騰訊雲簽名函式,以饗讀者。

PHP 簽名示例

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081/**
* 簽名並獲取URL結果,json格式返回* * 1. 查詢彈性IP列表, DescribeAddresses* 2. 解綁彈性IP, DisassociateAddress* 3. 釋放彈性IP, ReleaseAddresses* 4. 公網IP轉彈性IP, TransformAddress* * @param string $req_action : DescribeAddresses, DisassociateAddress, ReleaseAddresses, TransformAddress* @param string $params : 以 & 開頭, 如 &xxx=yyy
*/function qcloud_eip_sign($req_action='DescribeAddresses', $req_region='ap-beijing'$req_extra_params='', $retry_NUM=3) {global $QCloud_SecretId;global $QCloud_SecretKey;//  $req_action='DescribeAddresses'//  $req_region = 'ap-beijing';                 // ap-guangzhou$req_method = 'GET';                            // GET  POST$req_api = 'eip.api.qcloud.com/v2/index.php';$req_version = '2017-03-12';$req_timestamp = strtotime(date('YmdHis')); // 1402992826$req_nonce = rand(1000, 1000000);           // 隨機正整數

相關推薦

Python PHP 簽名 hmac_sha256 演算法實現

開宗明義,米撲科技在使用騰訊雲的API介面簽名中,按照官方示例開發PHP、Python的介面,經常會提示簽名錯誤123456789{"Response": {"Error": {"Code": "InvalidParameter.SignatureFailure","Mess

php 呼叫 的人臉融合 ai介面

1.登入騰訊AI開放平臺(控制檯) 2.建立應用 3.接入能力 4.開始開發      1)獲取APPID AppKey public $APPID = **********; public $APPKEY = **********;// 應用金鑰

Python 服務端整合 IM 服務

最近做的專案,需要接入騰訊雲 IM,翻看了一下文件,iOS、Android 以及 Web 端基本上都有 SDK 可以整合。我使用的服務端是用 Python 寫的,騰訊 IM 暫時還沒有 Python 的官方文件。但是在騰訊雲的官方論壇上找到了解決方法。 服務端最基本的一個需求是:使用接入使用者的 i

小程式開發中用的業務伺服器實現資料庫功能(mysqli)的解決辦法

業務伺服器資料庫功能的實現過程 背景: 業務伺服器在執行模型程式碼處理資料庫訪問時,會去呼叫mysqli,但是騰訊雲的景象裡預設是沒有安裝mysqli拓展的。而在安裝過程中會遇到很多問題,這裡就梳理下我的發現問題解決流程。 1、  問題:在編寫了資料庫模型呼叫後報錯

C#WinfromPYTHON接入OCR

程式基本目的是實現提取圖片中的文字。做了一個winfrom介面,接了騰訊雲的OCR圖片識別。 這裡接入文件就不給出了,想看的直接去騰訊雲看接入文件即可。 由於想做跨平臺的應用。分析了接入文件,並且之前想做一個web介面介面的,但是無奈javascript技術不到家,表單傳遞時的hea

基於的Centos6.2系統搭建Apache+Mysql+PHP開發環境

fcm 拓展 php代碼 /var/ 安全 size onf tle php-mysql 搭建環境,我肯定需要先購買騰訊雲服務器的哦! 然後,我們打開SecureCRT 7.3,這是一款可以連接Linux系統的客戶端工具,使用的很方便快捷,要註意的是,若你是Linux系統的

ubuntuservermysql安裝外網訪問

時間 with fonts .net start -1 read 每次 mona 1 騰訊雲 購買ubuntu 默認賬戶是ubuntu(因為winscp 使用ubuntu沒有權限寫文件) 因為騰訊雲主機ubuntu系統默認username為ubuntu,不喜歡每次

小程序用thinkPHP上傳文件到象存儲空間

php<?php/** * Created by PhpStorm. * User: Administrator * Date: 2017/11/22 * Time: 10:48 */ namespace Home\Controller;//命名空間 require(‘cos-php-sd

】CVM的功能優勢學習總結

騰訊雲 騰訊雲的功能 騰訊雲的特點 騰訊雲的功能與優勢具有以下幾個方面:提供全面的服務彈性的雲端CVM的管理平臺可靠CVM極速的CVM性能多種解決方案來保證CVM和數據的安全簡單易用多種計費模式,降低IT投入成本騰訊雲CVM提供了全方面的服務內容,具體為以下幾類:實現了多region多zone覆蓋

Python 短信,發送手機驗證碼

err dsm exc 分享圖片 安裝 代碼 cli single img 1.安裝包 pip install qcloudsms_py 2.準備好相關參數 騰訊雲短信每個月贈送100條短信,申請一個應用,獲取appid,然後創建短信簽名,然後創建正文模版 3.發

微信小程序基於象存儲的圖片上傳

don format isp manager reg false serial key .net 在使用騰訊雲對象存儲之前,公司一直使用的是傳統的FTP的上傳模式,而隨著用戶量的不斷增加,FTP所暴露出來的問題也越來越多,1.傳輸效率低,上傳速度慢。2.時常

centos安裝python3.6pip

ubunt tmp pen -- 教程 ots pip pan 更改 不知道騰訊雲的centos和阿裏雲的centos一不一樣,反正兩個雲平臺的Ubuntu系統是不一樣的,照著同樣的教程敲,往往掉坑裏。 安裝一些centos依賴庫: 這一步很關鍵,很多報錯往往都因為少了

Python實現CDB備份文件自動上傳到COS

requests 簡單 level color eid zip part 雲平臺 python3 一、背景 需求:目前遇到的客戶需求為將騰訊雲CDB備份文件自動上傳到騰訊雲COS內,再次拋磚引玉,還有很多類似的需求均可以采用此類方法解決,線下IDC數據文件備份至雲端COS

服務器手動自動安裝WordPress網站程序

img 詳細 密碼 賬戶 htm 技術分享 center 建站 upload 如果我們需要建站的話,對於基礎個人網站、博客建站選擇基礎的1Mbps帶寬配置的1GB內存的騰訊雲服務器還是夠用的,且如果我們需要用來建網站的話可以手工添加程序,以及有些面板,比如寶塔面板是自帶CM

如何防範應對Redis勒索,教你出招

redis使用 普通用戶 實踐經驗 目的 cfg 一起 內存數據庫 name 漏洞利用 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 本文由騰訊雲數據庫 TencentDB發表於雲+社區專欄 9月10日下午,又一起規模化利用Redis未授權訪問漏洞攻擊數據

微信小程式使用PHP啟動模板時兩個小錯誤

一:Error: 響應錯誤,{"code":-1,"error":"`QcloudSecretId`不能為空,請確保 SDK 配置已正確初始化"}     在按照官方文件給出的步驟一步步完成“騰訊雲PHP啟動模板”後,發現登入時會出現這個問題。    

關於iis+php架構網站遷移到ECS後公網IP無法訪問的可能解決方法

最近將網站遷移到了阿里雲,各種配置之後,發現公網ip無法訪問。找個各種方法,以及看文件,最後找到了一種解決方法。 1. 我在安裝iis服務時,使用了 netsh http listen 127.0.0.1 ,它佔用了80埠。 2.如何知道80埠被佔用: 推薦用telnet,在命令提示

Python實戰】用Scrapyd把Scrapy爬蟲一步一步部署到

將我們的爬蟲部署到騰訊雲伺服器上面。廢話不多說,我們就來實戰操作吧。 這裡選擇什麼雲服務都是可以的,阿里雲,AWS,騰訊雲,其他雲都是沒有問題的。部署方法基本一樣,這裡為了方便,所以筆者選擇了騰訊雲來做講解。 既然我們選擇了騰訊雲,首先去騰訊雲的官網,註冊登入一下。 點選複製https:

微信小程式-PHP模板-Error: 響應錯誤,{"code":-1,"error":'root'@'localhost' (using password: YES)"}-排坑2

        Error: 響應錯誤,{"code":-1,"error":"SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)"}

實現手機註冊——使用Python(DRF應用)接通簡訊服務介面

本篇以註冊或者登陸的單次單人傳送場景為例,使用Python進行簡訊介面的除錯,從而實現DRF應用的使用者註冊功能,至於群發或者語音等簡訊的場景,合此類似,本篇不做完整介紹。 一、申請騰訊雲簽名並建立模板   首先在騰訊雲服務中找到簡訊服務,點選開通,