Я немного растерялся на этом ...
У меня есть специальный ключ, который мне нужно отправить на устройство в указанном формате, и я знаю, что то, что я делаю, неправильно - очевидно,потому что мне не хватает базовых знаний о битовых вещах в Javascript.
Первый шаг - генерировать случайное 128-битное число.Поскольку afaik JS-символы 16-битные, следующий код должен сгенерировать 128-битную строку, не так ли?
private generateSeed()
{
let result = '';
for(let i = 0; i < 8; i++)
result += ((Math.random() * 10) - 1).toString();
return result;
}
После этого мне нужно объединить начальное число и ключ, рассчитать SHA1 этого иПадд, что SHA1 до 192 бит с нулями.
private generateAKey(seed: string)
{
const Provided_KEY = '[32 random characters are in here]';
let concat = seed + Provided_KEY;
let sha1 = crypto.SHA1(concat).toString();
console.log(`SHA1: ${sha1} , Length: ${sha1.length}`);
// Padd to 192 bit/24 bytes
while(sha1.length < 12)
sha1 += '0';
return sha1;
}
Но я полностью потерян здесь.Я почти уверен, что ошибаюсь с этим.Также, поскольку SHA1, который я вычисляю с помощью crypto-js, уже имеет длину 40 символов, для меня это не имеет смысла.
Как мне правильно это сделать?