我正在考虑在 Symfony2 中构建一个 REST API,在他们的自定义身份验证提供程序中,他们展示了如何构建一个 WSSE 身份验证系统,这对于我需要做的事情应该没问题。我将从通过 cURL 构建和测试 API 开始,因此我需要能够快速生成标头。我找到了一个JS 生成器,它显示了我需要的标题。
根据我的阅读,密码摘要应该是一个 base64 编码的随机数、时间戳和用户密码按该顺序连接在一起的 SHA1。我从以下数据开始:
$nonce = '4c5625ec7af5bdff';
$timestamp = '2013-04-03T04:46:19Z';
$password = 'mypass';
并生成摘要:
$digest = base64_encode(sha1($nonce.$timestamp.$password));
我不明白的是该$digest
变量现在设置为YTgxMDUzOWQzMDBiZmU1MmI2NWQ0YjYwNDc3ZmY5OWI3MmVlZTQyNA==
,但来自 JS 生成器的示例 PasswordDigest 出现为qBBTnTAL/lK2XUtgR3/5m3Lu5CQ=
. 我一定是在某处遗漏了一步,但我不确定它是什么。