Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import base64
- import hmac
- import hashlib
- import uuid
- item = {
- "category":"001",
- "updated":1425584703,
- "k":"YYejkBdcUYY9tfJ9MtODMEwMohhZE+jvIn9\/RFpeKVvUYUGVV5Prnz9UzT8RBI3SNQbE2jzMOg706yYq3He9GN+Lwdd6c8yuxFAZv39J1nkE2U9jK4j7+L0BWg7y2gxeFkR6Itq70bsoEzXzOgnjXw==",
- "tx":1472822014,
- "hmac":"lxvNh6VPmrPBLoBAK1hC1W43i04oNUb9Nl1zQFKbRYs=",
- "uuid":"0E8D7507A1C1449D8134787D638E849A",
- "d":"b3BkYXRhMDGdAQAAAAAAAN8cAqBjffx0NbSIUz6AU3bwpXtx8Gqwp\/7Ygc6SfUyWB+wNkgdsoLXxo2yEjoZzTJ+KnPW7xCT22\/hlUqpTkO93JAzhVk1Apnnt2Ax7ESweIdzDNsflrcsdeQuVsPJujv61wD+5vWiBhjdmn5LnIOv3IeSp+uQahL6+elhUe2AErIJ3k5mRDAGGObKGn\/bFHOUvPAlMnQkBZ\/lJeXtba0TAiFIaXbzXquIWdH\/LgzcL1OJe+9Amw20c9WtMKKFl+EPiEEBqwEJ5F7ISpX+B4kdLp6SHJ\/NfJEDbkEC4HO4ICWaLfzx7nsB4mGmI8jkebwM2Bnjzl2M12zhlGvVZ5Cc0hF\/pEfAc\/Lsf15A2zz0hKqklz6mBYYcNu\/gSI+kvdEdRkmY73iBxJv6iIUiZIa1mQ7vuVxokFQ3Lc7wPcqgVn3v7T13E6Y65q0RskiwPvaP0B2msGpo2\/LUbEWtE0d0SuMmmZgBysVPb95Z+QSiAbPxoEXjUYTdj4qv9VxrzMb1LdUoMYIpR6ZEWDjhO3Gx0CPsr2TFV3Qkl\/oqPGHvHuw4xjQmx\/cQpFWcI+Eci7P4WMgTsS1i+lTYmNllvvLOEWVvXL6hERSmXkCBxRZ4V",
- "created":1425583737,
- "o":"b3BkYXRhMDE1AQAAAAAAAAfN4fc51pLMqc4jJnzJA700P0fLL7FL4SoPN6l1CL00Eimu5+Qdu7P3ghuBJWRhCyR12IDYIk6Oaft+AStbGAXKYrQ38oMvwGXcxtgPh0i6GSXOCZ9tn0YEtmYPmdnBSLj9yv\/f+OOG3SZGb3hV8q80YoBQDrPUD2rrR0jwMG5DQwjSX5F2XZ+ImtNIGuDliCBjdxtwtMWyck0TVrcrNGIcBjkJd2wRrjfWx8IDZV992SIo35h\/M++Q3W+0z8+XDxIvucx05l+m4GT7OukZtatd8bCJAXNphUGSuRlZNdfhyQPPtKHZcqwNbJZpoqhurEpHkXLMpOdm9PwwqLBbw0rJwqUrT8rhyHqom04gTB5s4K6P4+t3oYoXA3EFKLT9G0OkCotLoBsKWEBb\/DGPcynL2gDh+m3DqbXLtgzNX15c8EEtDOldS8Iu3DUXapmShYk3ga5uHw9bZ+uB9CtmSZSl2MV6WuSDr0vjeR\/v19ja"
- }
- if __name__ == '__main__':
- overview_mac_key = bytes([154, 92, 62, 117, 233, 10, 55, 169, 13, 242, 217, 29, 240, 24, 163, 77, 152, 192, 155, 231, 92, 22, 166, 27, 151, 200, 69, 214, 219, 22, 111, 250])
- h = hmac.new(overview_mac_key, digestmod=hashlib.sha256)
- for k in sorted(item.keys()):
- if k == 'hmac':
- continue
- h.update(bytearray(k, 'utf8'))
- v = item[k]
- if k in ['k', 'd', 'o']:
- v = base64.b64decode(v)
- elif k in ['tx', 'created', 'updated']:
- v = v.to_bytes(4, byteorder='little')
- elif k == 'uuid':
- v = uuid.UUID(v).bytes
- else:
- v = bytearray(v, 'utf8')
- h.update(v)
- print("{}: {}".format(k, v))
- got = base64.b64encode(h.digest())
- expected = item['hmac']
- print('expected: {}\ngot: {}'.format(expected, got))
- assert(got == expected)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement