国产乱子伦精品视频潮,日本丰满少妇bbb,妇乱子伦毛片视频,久久AV无码乱码A片无码天美,人妻丁字裤流出白浆

跳到主要內容

請求簽名

簽名Demo?

對接API時,簽名驗證部分可參考demo代碼編寫(包含java、python、php、go語言的示例)

請求簽名方法?

使(shi)用創建密鑰,獲得 AccessKeyId 和 AccessKeySecret,這里我(wo)們做以下假設(she):

AccessKeyId=6792aa42d288422ab8dd4654dfe727c4
AccessKeySecret=2f59e0d79d36442a899b54136cd7dc82

下面以開(kai)通(tong)虛(xu)擬機的 API 為(wei)例(li)子,說(shuo)明(ming)一下,如何(he)使用(yong)構造請(qing)求(qiu)的簽名 例(li)如我們請(qing)求(qiu)ch-wuxi1機房中的創建云主機操作:

//api.cn-henji.com/v2/?Action=RunInstance
&Region=cn-wuxi1
&ImageId=t-ej8hh1dex32l
&FirewallId=f-g18hh7tffy34g
&Interface.0.NetworkId=noy8hh7i9na39w
&Volumes.0.Type=normal
&Volumes.0.Size=20
&Volumes.1.Type=normal
&Volumes.1.Size=20
&InstanceType=1%E6%A0%B81G_SERIES_STANDARD
&Period=1&PayType=PREPAID
&AccessKeyId=6792aa42d288422ab8dd4654dfe727c4
&Date=2017-09-13T15%3A40%3A19%20%2B0800
&Name=%E6%B5%8B%E8%AF%95%E6%8C%89%E9%87%8Fapi
&Version=1.0
&Signature=qx5mPbG0UvLSN4wKdnfmqcB63tmKi8qQUvq52ixAAAQ%3D

1.按照url請求參數的順序(不限制順序)進行URL編碼(除Signature)?

警告:編碼時(shi)空格要轉(zhuan)換成(cheng) “%20” , 而(er)不是(shi) “+”;"*"要轉(zhuan)換成(cheng)"%2A"

Name=%E6%B5%8B%E8%AF%95%E6%8C%89%E9%87%8Fapi&ImageId=t-ej8hh1dex32l&InstanceType=1%E6%A0%B81G_SERIES_STANDARD&FirewallId=f-g18hh7tffy34g&Interface.0.NetworkId=n-oy8hh7i9na39w&Volumes.0.Type=normal&Volumes.0.Size=20&Volumes.1.Type=normal&Volumes.1.Size=20&InstanceSeries=SERIES_STANDARD&Period=1&PayType=PREPAID&Region=cn-wuxi1&AccessKeyId=6792aa42d288422ab8dd4654dfe727c4&Date=2017-09-13T15%3A40%3A19%20%2B0800&Action=RunInstance&Version=1.0&Signature=qx5mPbG0UvLSN4wKdnfmqcB63tmKi8qQUvq52ixAAAQ%3D

假(jia)設(she)URL編碼后(hou)的字符串命名為$sbParams

2.將進行過編碼的字符串進行MD5?

MD5的php代碼:

md5(http_build_query($sbParams, '', '&', PHP_QUERY_RFC3986)) . "\n";

3.生成要簽名的字符串?

生成簽名(ming)的(de)字(zi)符串(chuan)格式(shi): METHOD + "\n" + MD5(sbParams) + "\n" + ContentType + "\n" + 時間 + "\n"

說明:

  • HTTP請求方式 METHOD:GET 或 POST
  • ContentType 例如: application/json;charset=UTF-8
  • 時間 :2016-09-02T16%3A59%3A00%20%2B0800

生成例如:

aBRnnyo3MLKiJAfxDzEE9X4NvOn%2FZZ%2BBBzHG%2FJYPKjI%3D

假設(she)生成(cheng)的簽名(ming)命名(ming)為(wei) stringToSign

生成簽名?

生成簽名規則:

  1. 使用最早獲取的 AccessKeySecret 和 HMAC-SHA256 算法來生成簽名,詳細可以參考 RFC2104。
  2. 將以上得到的簽名字符串stringToSign使用 Base64 編碼。

簽名的php代碼:

//設置時區
date_default_timezone_set('PRC');

//所有(you)請求參數,不包括簽名
$parameters = ['Action'=>'RunInstance', 'Name'=>'云主(zhu)機(ji)名稱', 'Date'=>date('Y-m-d\TH:i:s O')];

//自(zi)己accessKeySecret
$accessKeySecret = 'accessKeySecret';

$signature = compute_signature($parameters, $accessKeySecret, 'GET');

function compute_signature($parameters, $accessKeySecret, $method = 'GET')
{
$stringToSign = $method . "\n";
$stringToSign .= md5(http_build_query($parameters, '', '&', PHP_QUERY_RFC3986)) . "\n";
$stringToSign .= "application/json;charset=UTF-8\n";
$stringToSign .= rawurlencode($parameters['Date']) . "\n";
$signature = percent_encode(sign_string($stringToSign, $accessKeySecret));
return $signature;
}

function sign_string($string, $accessKeySecret)
{
return base64_encode(hash_hmac('sha256', $string, $accessKeySecret, true));
}

function percent_encode($str)
{
$res = urlencode($str);
$res = preg_replace('/\+/', '%20', $res);
$res = preg_replace('/\*/', '%2A', $res);
$res = preg_replace('/%7E/', '~', $res);
return $res;
}

生成(cheng)的簽名(ming)字符串作為請求參數(shu)Signature

4.最終生成的請求URL如下:?

//api.cn-henji.com/v2/?Action=RunInstance
&Region=cn-wuxi1
&ImageId=t-ej8hh1dex32l
&FirewallId=f-g18hh7tffy34g
&Interface.0.NetworkId=noy8hh7i9na39w
&Volumes.0.Type=normal
&Volumes.0.Size=20
&Volumes.1.Type=normal
&Volumes.1.Size=20
&InstanceType=1%E6%A0%B81G_SERIES_STANDARD
&Period=1&PayType=PREPAID
&AccessKeyId=6792aa42d288422ab8dd4654dfe727c4
&Date=2017-09-13T15%3A40%3A19%20%2B0800
&Name=%E6%B5%8B%E8%AF%95%E6%8C%89%E9%87%8Fapi
&Version=1.0
&Signature=qx5mPbG0UvLSN4wKdnfmqcB63tmKi8qQUvq52ixAAAQ%3D