3

Привет, я новичок в криптографии и понятия не имею, как это сделать. Итак, я получаю открытый ключ от сессии Putty, и это выглядит так:

0x23,0xa69e43f72f1d8f07a6baae6ea0b0ce81cbe949345a0a5e307ae89e9cf58b20a17571af39e951faf61c45ef2ca9e21897eb9bc226473783ed9c3f6e30c4a84fa625373af96f41f8d9670484b52a33072eae6bb5433a2f00c672c20d7a03636a1b26af15b0d3ed376b9699e8653caa198637be88282333e8038bed63b9a2c6d179

выполнив поиск в Интернете, я обнаружил следующий поток, в котором появляется тот же формат, поэтому я знаю, что первое шестнадцатеричное значение является показателем степени, а второе значение является модулем. Но я не могу найти ничего о том, как использовать два, чтобы получить простой открытый ключ. http://winscp.net/forum/viewtopic.php?t=5850

Мой вопрос: как мне преобразовать ключ в стандартный openssh fromat ergo base64?

надеюсь, кто-то может помочь.

2 ответа2

4

Обычным способом преобразования ключей между различными форматами является использование программ генерации ключей соответствующих программ, которые обычно также имеют некоторую опцию преобразования.

В вашем случае ключ Putty можно преобразовать в другие форматы с помощью программы PuttyGen.

В документации объясняется, как это сделать с помощью графического интерфейса (вам нужен открытый ключ для вставки в файл авторизованного ключа ).

Использование PuTTY ssh-ключей с OpenSSH в Ubuntu, похоже, также показывает способ командной строки:

puttygen /path/to/puttykey.ppk -L > ~/.ssh/id_rsa.pub

(Я не пробовал это, и один из комментариев там говорит, что это не работает - посмотрите документацию.)

1

Это двухэтапный процесс. Сначала преобразуйте свой гекс в байтовые массивы. Затем преобразуйте ваши байтовые массивы в строки Base64. Вы, вероятно, найдете библиотечные функции, которые помогут с Base64, и конвертеры распространены в сети. Я предполагаю, что вы можете сделать шестнадцатеричное преобразование байтов или библиотечная функция может быть доступна. Будьте внимательны, чтобы библиотечная функция не просто преобразовывала символы ASCII в шестнадцатеричные значения, т. Е. Чтобы ваша строка "0x23" преобразована в { 0x23 } а не в { 0x32, 0x33 } .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .