Как зашифровать пароль для Tuya Smart Lock Open API
Имейте в виду, что я очень новичок и потерялся, когда дело доходит до кодирования.
Я пытаюсь создать временный замок для смарт-замка, который использует приложение Tuya с помощью Postman. В настоящее время я застрял на пароле, так как он требует его шифрования. требования к паролю от tuya В нем говорится, что мне нужно расшифровать «ticket_key» (который я получаю через запрос «Получить временный ключ для шифрования пароля») с помощью «accessKey». Может ли кто-нибудь помочь мне найти этот ключ доступа и объяснить, как я должен шифровать и расшифровывать (мне нужно создать для него программу или она уже доступна).
Заранее спасибо!
Я пытался использовать ChatGPT, чтобы написать мне программу, которая шифрует и расшифровывает, но не смог получить из нее ничего полезного.
1 ответ
Я столкнулся с аналогичной проблемой и сумел добиться желаемого результата с помощью программы JavaScript. Ниже приведены шаги, которые я выполнил, которые также можно выполнить, используя только Postman и онлайн-инструменты:
Получите токен доступа:
- Конечная точка:
/v1.0/token?grant_type=1
(метод ПОЛУЧИТЬ) - Описание: Получите токен доступа от API Tuya, необходимый для аутентификации и авторизации для выполнения дальнейших запросов.
- Конечная точка:
Запросить ключ доступа:
- Конечная точка:
/v1.0/devices/[device_id]/door-lock/password-ticket
(метод POST) - Описание: используйте полученный токен доступа для запроса ключа доступа (или билета пароля) у API Tuya, необходимого для создания нового пароля дверного замка.
- Конечная точка:
Расшифровать ключ доступа:
- Описание: Расшифруйте полученный ключ билета с помощью https://www.lddgo.net/en/encrypt/aes. Используйте следующие настройки: Mode=ECB, Padding=pkcs7padding, Формат ввода=Hex, Формат вывода=String, Пароль=Секрет клиента вашего проекта Tuya (подробнее см. https://support.tuya.com/en/help/_detail/Kasgyvlkrcufp), Кодировка=UTF-8.
Зашифровать пин-код:
- Описание: Зашифруйте выбранный 7-значный пин-код, используя тот же онлайн-инструмент, что и выше. Измените пароль на расшифрованное значение из предыдущего шага: формат ввода = строка, формат вывода = шестнадцатеричный.
Создать пароль:
- Конечная точка:
/v1.0/devices/[device_id]/door-lock/temp-password
(метод POST) - Описание: Отправьте зашифрованный пин-код с дополнительными необходимыми данными (действительный и срок действия пароля) в API Tuya. Это для создания временного пароля для дверного замка. В тексте запроса укажите зашифрованный пин-код в качестве «пароля», Ticket_id из шага 2 и временные метки эффективного и недействительного времени, как показано в этом примере.
{ "пароль": "9c63efba8fb57e89319dff9117d3765a", "password_type": "ticket", "ticket_id": "cNOYOdpM", "efficient_time": 1701187200000, "invalid_time": 1701360000000, "name": "test666", "time_zone": " " }
- Конечная точка:
Примечание. Пользователям Postman рекомендуется использовать коллекцию Postman с https://developer.tuya.com/en/docs/iot/set-up-postman-environment?id=Ka7o385w1svns. Эта коллекция включает предварительно написанный код JavaScript, который вычисляет значение знака для каждого запроса.