我想知道是否有人已經成功地爲他們的API使用php生成了EC2 v2簽名。我可以在網上找到的所有示例/庫都是用於簽名的v1版本,並且由於不安全因素已被棄用。實現簽名生成的現有庫也將受到讚賞。如何使用PHP爲Amazon EC2生成v2簽名?
0
A
回答
0
Here's一個支持V2的PHP庫。我還沒有嘗試過。
0
下面是一些代碼,我已經寫了,並一直在使用:
define("AWSKEY", "Your AWS Key");
define("AWSSECRET", "Your AWS Secret");
public function get($parameters, $host) {
// Build out the variables
$domain = "https://$host/";
$parameters['AWSAccessKeyId'] = AWSKEY;
$parameters['Timestamp'] = date('c');
$parameters['Version'] = '2007-11-07';
$parameters['SignatureMethod'] = 'HmacSHA256';
$parameters['SignatureVersion'] = 2;
// Write the signature
$signature = "GET\n";
$signature .= "$host\n";
$signature .= "/\n";
$sigparams = $parameters;
ksort($sigparams);
$first = true;
foreach($sigparams as $key=>$param) {
$signature .= (!$first ? '&' : '') . rawurlencode($key) . '=' . rawurlencode($param);
$first = false;
}
$signature = hash_hmac('sha256', $signature, $AWSKEY, true);
$signature = base64_encode($signature);
$parameters['Signature'] = $signature;
$url = $domain . '?';
$first = true;
foreach($parameters as $key=>$param) {
$url .= (!$first ? '&' : '') . rawurlencode($key) . '=' . rawurlencode($param);
$first = false;
}
$ch = curl_init(trim($url));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
return $output;
}
這裏是你如何使用它:
$params = array(
'Action' => 'ListDomains'
);
$db->get($params, 'sdb.amazonaws.com');
這將在SimpleDB中執行ListDomains
查詢。該函數本身將返回Amazon的輸出。對於更復雜的命令(即:PUT,POST等),不需要做任何重大修改。
1
0
使用常數AWSSECRET哈希簽名,而不是$ AWSKEY(未參考的變量)。
相關問題
- 1. 如何使用php爲Twitter API生成OAuth簽名?
- 2. 如何在不使用SDK的情況下爲Amazon S3生成預簽名url
- 3. 使用php生成API調用簽名
- 4. 使用Amazon EC2爲VMware
- 5. OAuth簽名生成(PHP)
- 6. Amazon S3/EC2 - PHP&MySQL?
- 7. Java如何爲方法生成簽名?
- 8. 如何生成DSA簽名?
- 9. 如何使用Java庫從Amazon AWS EC2實例獲取標籤
- 10. 如何在Amazon EC2上配置PHP + Apache?
- 11. Android簽名apk簽名V2
- 12. 如何用新的Amazon EC2實例替換Amazon EC2實例?
- 13. 如何使用Amazon PHP SDK 2獲取EC2實例列表?
- 14. 如何生成EC2證書
- 15. node.js的在Amazon EC2上使用Ubuntu 8.04安裝在Amazon EC2上
- 16. 如何重新生成用於生成APK的私鑰簽名?
- 17. 如何在Amazon EC2上
- 18. amazon cloud ec2 xampp用戶名和密碼
- 19. 使用PKCS#7簽名生成規範
- 20. 使用IBM SDK 6.0生成XML簽名
- 21. 如何爲'hadoop-ec2'正確配置Amazon EC2 AMI?
- 22. 如何生成方法簽名?
- 23. 如何禁用Amazon EC2充電?
- 24. 如何使用PHP/linux工具生成封裝XML簽名的DigestValue和SignatureValue
- 25. 如何使用Amazon AWS SDK爲C#
- 26. 如何設計PHP生成的標籤?
- 27. PHP:我如何生成一個字符串的HmacSHA256簽名
- 28. 爲Amazon S3生成最大內容長度的預簽名PUT url
- 29. 如何使用IOS iphone SDK生成PKCS7格式簽名?
- 30. 如何使用分佈式證書生成Axis2 XML簽名