Provo a generare una firma usando Elixir, che ha lo stesso valore di PHP.Genera firma in Elixir e PHP usando hmac
Per esempio il codice in PHP è
$signature = base64_encode(hash_hmac("sha256", "abc", "def"));
e l'uscita sarà
Mzk3ZjQ2NzM0MWU0ZDc4YzQ3NDg2N2VmMzI2MWNkYjQ2YzBlMTAzNTFlOWE5ODk5NjNlNmNiMmRjZTQwZWU1ZA==
Come devo generare la firma che ha lo stesso valore in Elixir. Ho provato qualcosa di simile sotto
iex(9)> :crypto.hmac(:sha256, "abc", "def") |> Base.encode64 │
"IOvA8JNERwE081BA9j6pix2OQUISlJ7lxQBCnRXqsIE="
iex(10)> :crypto.hash(:sha256, :crypto.hmac(:sha256, "abc", "def")) |> Base.encode64 │
"dxGiPN6KqBJrtS2wlC4tnJXwUsWf4u1LPDtDFK+VT5A="
o io cambiare la posizione di abc
e def
iex(11)> :crypto.hash(:sha256, :crypto.hmac(:sha256, "def", "abc")) |> Base.encode64 │
"b+3P5oHu8e6HIlJe2MzcGhKm7tCcF/NE5wPIbEhrFGU="
iex(12)> :crypto.hmac(:sha256, "def", "abc") |> Base.encode64 │
"OX9Gc0Hk14xHSGfvMmHNtGwOEDUempiZY+bLLc5A7l0="
Ma nessuno di loro ha lo stesso valore. Qualcuno può dirmi come farlo nel modo giusto?
Grazie mille! Ha funzionato!!! –
Dopo aver controllato il documento, ho scoperto che posso farlo come '... |> Base.encode16 (caso:: lower) |> Base.encode64' senza' String.downcase' –