Це приблизно те саме, що і при зберіганні паролів. У вас повинен бути унікальний секретний ключ, відомий лише генератору та вашій програмі. За допомогою цієї клавіші маніпулюйте деталями (ім'я користувача, пароль, організація тощо), а потім вкажіть їх. Потім ви можете зробити щось тривіальне кодування передачі в Base32 на хеші або просто перемістити його в шістнадцяткову рядок, якщо вам не важливий формат.
Будь-які проблеми, на які слід звертати увагу при їх реалізації?
Тримайте секрети в таємниці та роздільно. Зробіть свою реалізацію неправдоподібною. Якщо хтось це порушить, можете легко змінити реалізацію? Однією поширеною реалізацією настільних додатків є використання віддаленого сервера для перевірки ліцензії. Це виключає можливість того, що хтось може повернути інженеру хеш або алгоритм, перевіривши саму програму.