У меня есть рабочий пример JS, скомпилированный из разных источников, который я сократил до базового уровня. чтобы проиллюстрировать этот вопрос.
Код: Выделить всё
function main() {
var k = CryptoJS.HmacSHA256('k', 'WebAppData');
console.log("k: " + k);
var h = CryptoJS.HmacSHA256('data', k);
console.log("h: " + h);
}
main();Код: Выделить всё
Ответ полного примера соответствует ожидаемому хешу
Код: Выделить всё
"k: 3db03151d3fb2678c9fc0f24ee15817bfd1ff922a712a055f63066f875e43fc1"
"h: 9158b0aeb1e882c075ea46a0d5302cffba1a9b66b0df40f5f01eef614f7d9f94"
Код: Выделить всё
var secretKey = new HmacUtils("HmacSHA256", "WebAppData").hmacHex("k");
var hash = new HmacUtils("HmacSHA256", secretKey).hmacHex("data");
Код: Выделить всё
secretKey: 3db03151d3fb2678c9fc0f24ee15817bfd1ff922a712a055f63066f875e43fc1
hash: 2c73ad3290e04a382b29edea6cb0ef4b1454592429336c32e98ad611452581b2
Разве нет метода обработки этой проверки в Telegram SDK, который я пропустил, чтобы не делать этого рука?
Подробнее здесь: https://stackoverflow.com/questions/767 ... on-in-java
Мобильная версия