Итак, я создаю класс активации для проекта VB6, и я столкнулся с умственным пердением. Я разработал способ создания серийного номера для этого конкретного продукта следующим образом.
XXXX-XXXX-XXXX-XXXX
Каждая группа чисел будет представлять данные, которые я могу прочитать, если я знаю о соответствующем документе, который позволяет мне понимать коды с группой цифр. Так, например, первая группа может представлять месяц, когда продукт был продан покупателю. Но у меня не может быть, чтобы все серийные номера в январе начинались с тех же четырех цифр, поэтому для вычисления этого значения необходимо выполнить некоторую внутреннюю математику. Я приземлился на это:
A B C D = цифры в первой группе серийного номера
(A + B) - (C + D) = #
Теперь # будет относиться к таблице шестнадцатеричных значений, которая будет представлять месяц, когда продукт был продан. Что-то вроде ...
1 - январь
2 - февраль
3 - март
....
B - ноябрь
C - декабрь
Мой вопрос лежит здесь - если я знаю, что мне нужно, чтобы сумма равнялась B (11), то как именно я могу кодировать в обратном направлении, чтобы сгенерировать (A + B) - (C + D) = B (11) ?? Это довольно простое уравнение, я знаю - но кое-что, с чем я только что столкнулся и не могу начать в правильном направлении. Я не прошу полной обработки кода, а просто толчок. Если у вас есть полное решение и вы хотите поделиться им, я всегда открыт для изучения.
Я кодирую в VB6, но решения VB.NET, C #, C ++ также могут работать, поскольку я могу относительно легко переносить их. Помощь сообщества всегда ценится!