0

AWS SDK for PHPを使用して署名エラーが発生し続けますが、暗号化されたデータを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;
    }
    ?>

私は暗号化、ハッシュ、署名について何も知らないので、これについての私の無知を前もって許してください。

4

1 に答える 1

0

問題を調査した後、私が使用することにした解決策は、リクエストを送信する前にbase64_encode($ userkey)を使用することでした。

署名エラーが発生する理由はわかりませんが、これで問題は解決します。

于 2013-03-15T18:12:06.943 に答える