Используя Crypto ++ генерировал RSA, включает OpenSSL

У меня была эта та же проблема с фонами, не обнаруживающимися на экране входа в систему. Однако проблема только произошла, когда я пытался использовать файлы, я передал от резервного внешнего жесткого диска. Оказывается, что это - просто проблема полномочий. Если Вы скопировали файлы с другого местоположения, они могут только быть читаемым пользователем/группой (но не другой/мир читаемый). Так как глобальный экран входа в систему не имеет Ваших персональных полномочий, он не может получить доступ к фоновым изображениям, если они не читаемый мир (не делайте их миром перезаписываемый хотя).

Так находят фон (фоны), Вы хотите использовать, и затем изменить их полномочия как так:

chmod o-r [некоторый файл с плохими полномочиями]

Это, надо надеяться, решит Ваш экранный вопрос входа в систему.

6
задан Vargas 31 August 2009 в 14:09
поделиться

2 ответа

И Crypto ++, и OpenSSL могут обрабатывать закодированные ключи PKCS # 8. В crypto ++ вы можете генерировать ключи и преобразовывать их в буфер PKCS # 8 следующим образом

AutoSeededRandomPool rng;
RSAES_OAEP_SHA_Decryptor priv(rng, 2048);
string der;
StringSink der_sink(der);
priv.DEREncode(der_sink);
der_sink.MessageEnd();

// der.data() is the bytes you need

. Теперь вам просто нужно передать байты в PHP. Вы можете сохранить его в файле и отправить в сообщении.

Единственная проблема заключается в том, что интерфейс PHP OpenSSL принимает только PKCS # 8 в кодировке PEM. Вы можете легко преобразовать буфер, закодированный в DER, в PEM, как в PHP,

<?php
function pkcs8_to_pem($der) {

    static $BEGIN_MARKER = "-----BEGIN PRIVATE KEY-----";
    static $END_MARKER = "-----END PRIVATE KEY-----";

    $value = base64_encode($der);

    $pem = $BEGIN_MARKER . "\n";
    $pem .= chunk_split($value, 64, "\n");
    $pem .= $END_MARKER . "\n";

    return $pem;
}
?>

Вы также можете преобразовать PKCS # 8 в PEM на C ++, если хотите. Алгоритм очень прост, как вы можете видеть из кода PHP.

OpenSSL настолько распространен в наши дни. Я не вижу причин использовать Crypto ++ для таких распространенных криптографических приложений.

5
ответ дан 17 December 2019 в 02:31
поделиться

Попробуйте эту ссылку: http://www.cryptopp.com/fom-serve/cache/62.html

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

Я использовал только OpenSSL, поэтому я не уверен, какие у вас есть возможности с Crypto ++. Я нашел ссылку выше, выполнив поиск в Google по следующим терминам: Crypto ++ RSA OpenSSL.

DER - это двоичный формат OpenSSL для ключей и сертификатов.

PEM - это текстовый формат OpenSSL.

0
ответ дан 17 December 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: