Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membaca Kunci RSA dari Fail untuk Menandatangani JWT?

Bagaimana untuk Membaca Kunci RSA dari Fail untuk Menandatangani JWT?

Linda Hamilton
Linda Hamiltonasal
2024-11-08 06:53:02418semak imbas

How to Read an RSA Key from a File for JWT Signing?

Cara Membaca Kunci RSA daripada Fail

Untuk menggunakan kunci persendirian RSA untuk menandatangani JWT, anda perlu mengekstraknya daripada fail . Artikel ini akan membimbing anda melalui proses membina struktur kunci daripada kunci pra-jana dalam fail.

Menjana Kunci RSA

Kekunci contoh yang disediakan dalam soalan dijana menggunakan arahan berikut:

openssl genrsa 2048 | openssl pkcs8 -topk8 -nocrypt

Membaca Kunci RSA daripada Fail

Untuk membaca kunci daripada fail, anda boleh menggunakan gabungan pem.Decode dan x509.ParsePKCS1PrivateKey:

package main

import (
    "crypto/x509"
    "encoding/pem"
    "fmt"
)

func main() {
    // Replace `pemString` with the actual contents of your key file.
    pemString := `-----BEGIN RSA PRIVATE KEY-----
...`

    block, _ := pem.Decode([]byte(pemString))
    key, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
    fmt.Println(key.N) // This prints the key's modulus.
}

Alternatif untuk PKCS#8 Kekunci Dikodkan

Jika anda mempunyai PKCS#8 yang dikodkan kunci, anda boleh membacanya menggunakan x509.ParsePKCS8PrivateKey:

func main() {
    pemString := `-----BEGIN PRIVATE KEY-----
...`

    block, _ := pem.Decode([]byte(pemString))
    parseResult, _ := x509.ParsePKCS8PrivateKey(block.Bytes)
    key := parseResult.(*rsa.PrivateKey)
    fmt.Println(key.N) // This prints the key's modulus.
}

Penyelesaian ini membolehkan anda mengakses kunci peribadi RSA daripada fail dan menggunakannya untuk menandatangani JWT atau melakukan operasi kriptografi lain.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Kunci RSA dari Fail untuk Menandatangani JWT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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