Bagaimana untuk Menukar Kunci RSA daripada PKCS#1 kepada Format X.509 dalam OpenSSL?

DDD
Lepaskan: 2024-11-07 20:14:03
asal
316 orang telah melayarinya

How to Convert RSA Keys from PKCS#1 to X.509 Format in OpenSSL?

Menukar Kunci RSA daripada PKCS#1 kepada Format X.509

Dalam OpenSSL, kunci RSA boleh disimpan dalam dua format:

  • PKCS#1: Hanya mengandungi kunci awam.
  • X.509: Termasuk struktur SubjectPublicKeyInfo, yang mengandungi algoritma OID dan kunci awam.

.NET boleh mengendalikan kedua-dua kunci berkod ASN.1/DER (PKCS#1) dan kunci berkod PEM (X.509). Untuk menukar kunci PKCS#1 kepada kunci X.509:

1. Gunakan PEM_write_bio_PUBKEY dan bukannya PEM_write_bio_RSAPublicKey:

  • PEM_write_bio_RSAPublicKey hanya menulis kunci awam (PKCS#1).
  • PEM_PUBKEYPublicKey menulis hanya kekunci awam (PKCS#1).
PEM_PUBKEYPublicKeys. 🎜>

2. Tukar kunci RSA kepada EVP_PKEY menggunakan EVP_PKEY_set1_RSA:

  • Fungsi ini menukar kunci RSA kepada EVP_PKEY, yang termasuk algoritma OID.

Kod Contoh :

<code class="c++">#include <openssl/pem.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>

int main() {
    RSA *rsa = RSA_new();
    BN_set_word(BN_new(), RSA_F4);
    RSA_generate_key_ex(rsa, 2048, NULL, NULL);

    EVP_PKEY *pkey = EVP_PKEY_new();
    EVP_PKEY_set1_RSA(pkey, rsa);

    BIO *pem = BIO_new_file("rsa-public.pem", "w");
    PEM_write_bio_PUBKEY(pem, pkey);

    RSA_free(rsa);
    EVP_PKEY_free(pkey);
    return 0;
}</code>
Salin selepas log masuk

Program ini menjana pasangan kunci RSA, menukar kunci awam kepada format X.509 dan menyimpannya dalam fail "rsa-public.pem".

Atas ialah kandungan terperinci Bagaimana untuk Menukar Kunci RSA daripada PKCS#1 kepada Format X.509 dalam OpenSSL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!