SHA256 хеширует тело и base64 кодирует в Python против TypeScript - PullRequest
1 голос
/ 15 мая 2019

Моя цель состоит в том, чтобы хэшировать тело в SHA256 и затем кодировать его с помощью base64. Я конвертирую python код в TypeScript.

На основании поиска в Google, как я понял, crypto можно использовать против hashlib и base64. Здесь проблема в том, что когда я использую .createHmac, тогда требуется secret, когда в Python я могу напрямую работать с телом. Это еще один способ достичь python результата в typeScript?

ПРИМЕЧАНИЕ: это первый раз, когда я вижу код Python, поэтому, пожалуйста, исправьте меня, если я что-то здесь упустил.

Код Python:

import hashlib
import base64

body = "johnDoe"
abc =  base64.b64encode(hashlib.sha256(body.encode('utf-8')).digest())
print(abc)

Выход:

b'RnuqbBqTNwQ7v3g3tKsVAi+NUALBCUeoRBEq6Yil6RA='

Это можно проверить здесь .

Код TypeScript: Использование createHmac

var crypto = require('crypto');

var secret = "PYPd1Hv4J6";
var body = "johnDoe";

var hmac = crypto.createHmac("sha256",secret);
var hmac_result = hmac.update(body).digest('base64');
console.log(hmac_result);

Выход:

DLZdA1/ULIIECiJ4t+HYDLE+FRPIfcFQNo7Uw/csopU=

Это можно проверить здесь .

1 Ответ

0 голосов
/ 15 мая 2019

Я могу добиться этого, используя createHash.

Код TypeScript:

var crypto = require('crypto');

var body = "johnDoe";

var hash = crypto.createHash("sha256");
var hash_result = hash.update(body, 'utf8').digest('base64');
console.log(hash_result);

Вывод:

RnuqbBqTNwQ7v3g3tKsVAi+NUALBCUeoRBEq6Yil6RA=

Это может бытьпроверено здесь .

...