将哈希HMAC SHA256的端口JS加密代码移植到PHP

时间:2018-12-18 23:24:18

标签: javascript php hash

我想移植以下JS代码:

@ECHO OFF

Rem | Configuration
Set "MainDirectory=C:\Folder1"
Set "FileExtension=*.txt"
Set "CopyDestination=C:\Folder2"

Rem | Search for the newest file in a directory/sub-directory
for /f "tokens=*" %%A in ('DIR "%MainDirectory%\%FileExtension%" /B /S /O:D') do (SET "NewestFile=%%A")

Rem | Copy file to a destination
copy "%NewestFile%" "%CopyDestination%"

goto :EOF

对PHP。我该怎么做?

我最接近的是:

crypto.createHmac('sha256', secret)
  .update(s)
  .digest('base64');

hash_hmac('sha256', $s, $secret)

但是没有一个返回与JS版本相同的结果。

如何将JS移植到PHP

1 个答案:

答案 0 :(得分:1)

设法回答了我自己的问题:

base64_encode(hash_hmac('sha256', $s, $secret, true));

最后一个参数是raw_output,根据docs

  

设置为TRUE时,输出原始二进制数据。 FALSE输出小写的十六进制。

欢迎使用更好的解决方案。