2012-04-24 3 views
0

Программирование Iam на языке C. Мне был предоставлен TMK (главный ключ терминала) в компонентах, например, TMK1 = шестнадцатеричное значение 32 байт TMK2 = шестнадцатеричное значение по 32 байта. Мне нужно вычислить значение проверки ключа, используя эти 2 значения ключа. Я знаю, что для достижения этого используется алгоритм DES, но я не знаю, как это сделать. Просьба предоставить образец программы для этого.расчет ключа Проверка значения с использованием значения ключа

Iam пытается это нравится:

1.Take КВ: XXXX XXXX XXXX XXXX YYYY YYYY YYYY YYYY

2.Divide его в левой и правой части, где каждая часть имеет длину 64 бита: Left = XXXX XXXX XXXX XXXX Право = ГГГГГГГГГГГГГГГ

3.Инициализация 64-разрядного буфера с нулями. Вызов этого буфера Результат.

4.DES encrypt Результат с левым.

5.DES decrypt Результат с правом.

6.DES шифровать Результат с левым

Платформа: Linux, C язык

+0

Напоминает мне о каком-то старом стандарте ANSI, X9.9 или что-то в этом роде. –

+0

Вы говорите, что не знаете, какой алгоритм используется, но вы сказали нам еще меньше об этом. Как мы могли бы дать полезный ответ? –

+0

Моя главная проблема заключается в том, как разделить этот контент TMK и использовать его для последующего алгоритма 3DES, как указано выше. – john

ответ

0

Я не могу дать вам код прямо сейчас, но я хотел бы предложить, что вы лечите KV как строку (или массив или символов) так что вы можете легко разделить его на две части. что-то вроде того.

+0

KV указывается как шестнадцатеричные значения ... мне нужно преобразовать его в ASCII, а затем использовать или использовать их как есть. – john

+0

@john: Не конвертируйте его в ASCII. Это двоичные данные, поэтому используйте его напрямую. – indiv

Смежные вопросы