[Interest] hmac sha256

Henry Skoglund fromqt at tungware.se
Mon Oct 15 23:50:15 CEST 2018


On 2018-10-15 23:16, Jérôme Godbout wrote:
> Hi,
> I'm trying to find the C++ equivalent of this python:
> /import hashlib/
> /import hmac/
> /hmac.new(bytearray(m_api_secret, 'utf-8'), bytearray(payload, 'utf-8'), 
> hashlib.sha256).hexdigest()/
> /
> /
> Or my Javascript equivalent (both give the same results):
> crypto.createHmac("sha256", m_api_secret).update(payload).digest("hex");
> /
> /
> I have try the following:
> 
>   * QMessageAuthenticationCode::hash(payload,
>     QByteArray::fromHex(m_api_secret), QCryptographicHash::Sha256).toHex();
>   * QMessageAuthenticationCode::hash(payload,
>     QByteArray::fromHex(m_api_secret),
>     QCryptographicHash::Sha3_256).toHex();
>   * QMessageAuthenticationCode::hash(payload, m_api_secret,
>     QCryptographicHash::Sha256).toHex();
>   * QMessageAuthenticationCode::hash(payload, m_api_secret,
>     QCryptographicHash::Sha3_256).toHex();
>   * QMessageAuthenticationCode::hash(QByteArray::fromHex(payload),
>     QByteArray::fromHex(m_api_secret), QCryptographicHash::Sha256).toHex();
>   * QMessageAuthenticationCode::hash(QByteArray::fromHex(payload),
>     QByteArray::fromHex(m_api_secret),
>     QCryptographicHash::Sha3_256).toHex();
> 
> But I never get the same results as the Python or Javascript one. Maybe 
> I'm using the wrong class here. Anybody have a good pointer on how to do 
> this?
> Any good hmac sha256 class to perform this?
> 

Hi, the QMessageAuthenticationCode class should work fine, and your #3 
attempt should be correct.

Just tested with key = "my secret key" and payload "my message":

Python3.6.6 on Ubuntu:
 >>> hmac.new(bytearray('my secret key', 'utf-8'), bytearray('my 
message', 'utf-8'), hashlib.sha256).hexdigest()
'8cb6f28c5bd8e02fef83fdb7cc00b2116f5aefd868c3c4bed4db3b99b0450372'

Qt 5.11.2 on Win7:
     qDebug() << QMessageAuthenticationCode::hash("my message","my 
secret key", QCryptographicHash::Sha256).toHex();

23:43:52: Starting 
C:\Projects\build-untitled-Desktop_Qt_5_11_2_MSVC2015_32bit-Release\release\untitled...
"8cb6f28c5bd8e02fef83fdb7cc00b2116f5aefd868c3c4bed4db3b99b0450372"

Rgrds Henry




More information about the Interest mailing list