Преобразование ключа RSA в файл PEM - PullRequest
3 голосов
/ 20 декабря 2010

Как я могу преобразовать этот открытый ключ RSA: 109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110 6039072308886100726558188253585034290 57592827629436413108566029093628 2126359538366865626758497206207862794310902180176810615217550567108238764764442605581471797071 19674283982419152118103759076030616683978566631413

1002 * до * .pem файл

Ответы [ 4 ]

6 голосов
/ 20 декабря 2010

Файл «pem» на самом деле не является форматом, и различные типы объектов могут храниться в файлах, называемых «pem». Чаще всего эти файлы содержат либо сертификат X509 в кодировке base64, либо объект закрытого ключа в кодировке base64.

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

PS. Открытый ключ RSA состоит из модуля и открытого показателя. Каков ваш публичный показатель?

1 голос
/ 15 января 2013

Если ваша шестнадцатеричная строка просто конвертируется из base64 в hex. Тогда вы можете полностью изменить это. Вот скрипт, который я сделал (на PHP), чтобы решить мой случай:

<?php

$list = array_slice($argv, 1);

foreach ($list as $file) {
    $hex = str_replace("\n", "", file_get_contents($file));
    $pem = str_replace(".hex", ".pem", $file);
    $b64 = base64_encode(hex2bin($hex));
    $fd = fopen($pem, 'w');
    fprintf($fd, "-----BEGIN PUBLIC KEY-----\n%s\n-----END PUBLIC KEY----\n", implode("\n", str_split($b64, 64)));
    fclose($fd);
}

Учитывая список файлов .hex, он конвертируется обратно в ".pem". Вы можете запустить его так:

php script.php *.hex
0 голосов
/ 21 декабря 2010

Я бы использовал OpenSSL.Предполагая, что у вас есть ключ в формате DER, вы можете использовать эту команду для преобразования из DER в PEM.

openssl x509 -inform der -in input.der -out output.pem

Если вы не уверены, что у вас есть правильно отформатированный кодированный ключ DER (ASN.1), попробуйте этот инструмент , чтобы проанализировать ваш входной файл.

0 голосов
/ 20 декабря 2010

используйте putty программы, PuTTYgen делает это преобразование

...