我使用适用于 PHP 的 AWS 开发工具包不断收到签名错误,但只有在将加密数据插入 SimpleDb 时才会发生这种情况。例如,如果我注释掉 $userkey = "test",则会出现错误,但如果我将其保留,则不会出现错误。
<?php
require_once 'vendor/autoload.php';
use Aws\Common\Aws;
$client = Aws::factory('_loginconfig.php')->get('SimpleDb');
$domainName = "MY_USERS_001";
$uniqueid = uniqid();
$userkey = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
//$userkey = "test";
$name = "Bob Smith";
try {
$client->putAttributes(array(
'DomainName' => $domainName,
'ItemName' => $uniqueid,
'Attributes' => array(
array('Name' => 'USER_KEY', 'Value' => $userkey, 'Replace' => true),
array('Name' => 'USER_REALNAME', 'Value' => $name, 'Replace' => true),
),
));
}
catch (Aws\SimpleDb\Exception\SimpleDbException $error) {
echo $error;
exit;
}
?>
我对加密、哈希、签名一无所知,所以请原谅我对此一无所知。