Different Signature HMAC SHA512 Between Hardcoded Secret Key and Stored Secret Key at env file using Golang

80 Views Asked by At

I want to make some signature using HMAC SHA512 and encoded to string using base64

My message is POST:/v1.0/debit/payment-host-to-host:gp9HjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a:56fa5f4999ad8014de49d7898c1d1d53472569db8999de3c1b752a0dd181e98c:2020-01-01T00:00:00+07:00

And secret is fdppqbF5wq7vVegyvsV1CROMv646nJ7A

If I store my secret key at env, I got 1sFLy5JqnsaF/fUONKdhWqIysMNfy+j/Pl3ee4C8NiLs3J6Cn2qHjSAqT6aUloPLkNHOY0/GPlAEQsLPKQVt7w== as signature

But if I hardcode the secret, I got FSlidRHe4ow9qppNifGVQNcdv67lBjgCiP0BHylh+IKXo4fs2rHaGsFNUY0N8t0rPlZs4iAHAOCDklnCccwuJw== as signature

I wonder how is it possible? Am I stored it wrong in my env?

Here is the code in golang

    stringToSign := "POST:/v1.0/debit/payment-host-to-host:gp9HjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a:56fa5f4999ad8014de49d7898c1d1d53472569db8999de3c1b752a0dd181e98c:2020-01-01T00:00:00+07:00"

    secret := "fdppqbF5wq7vVegyvsV1CROMv646nJ7A"
    // secret := os.Getenv("MY_SECRET_KEY")
    sig := hmac.New(sha512.New, []byte(secret)) //secret key hmacsha512
    sig.Write([]byte(stringToSign))
    signature = base64.StdEncoding.EncodeToString(sig.Sum(nil))

And here is my env file

MY_SECRET_KEY = fdppqbF5wq7vVegyvsV1CROMv646nJ7A
#MY_SECRET_KEY = "fdppqbF5wq7vVegyvsV1CROMv646nJ7A"
0

There are 0 best solutions below