我要使用js实现这个PHP签名函数,不使用第三方库,纯js实现,public function generateSignature($data, $secretKey) { unset($data['sign']); // Sort the data by key ksort($data); // Convert the data to a query string $queryString = http_build_query($data); // Add the secret key to the query string $queryString .= $secretKey; // Generate the signature using the SHA256 algorithm $signature = hash('sha256', $queryString); // Return the signature return $signature; }
时间: 2024-03-09 17:48:27 浏览: 139
用JS加密后,可以再用PHP解密
好的,以下是js实现的代码:
```js
function generateSignature(data, secretKey) {
delete data['sign'];
// Sort the data by key
const sortedKeys = Object.keys(data).sort();
// Convert the data to a query string
const queryString = sortedKeys.map(key => `${key}=${data[key]}`).join('&');
// Add the secret key to the query string
const queryStringWithSecret = `${queryString}${secretKey}`;
// Generate the signature using the SHA256 algorithm
const signature = sha256(queryStringWithSecret);
// Return the signature
return signature;
}
```
需要注意的是,这里的 `sha256` 函数需要自己实现或者引入库来实现。另外,由于js的对象在遍历时并不保证顺序,我们需要先将对象的key进行排序来保证和PHP中的结果一致。
阅读全文