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

Bagaimana untuk Memuatkan Kunci RSA dari Fail untuk Menandatangani JWT Selamat?

Susan Sarandon
Lepaskan: 2024-11-08 18:47:02
asal
797 orang telah melayarinya

How to Load RSA Keys from Files for Secure JWT Signing?

Memuatkan Kunci RSA daripada Fail untuk Tandatangan JWT Selamat

Menandatangani JWT selalunya memerlukan penggunaan kunci peribadi RSA untuk pengesahan dan pengesahan integriti. Untuk memanfaatkan kunci ini, adalah penting untuk memahami proses mengekstraknya daripada fail.

Kunci Peribadi RSA Dikodkan PEM

Format yang paling biasa untuk menyimpan peribadi RSA kunci ialah pengekodan PEM, dilambangkan dengan "-----MULAKAN KUNCI PERSENDIRIAN RSA-----" dan "-----END RSA KUNCI PERSENDIRIAN-----" pengepala dan pengaki. Untuk memuatkan kunci berkod PEM, anda boleh menggunakan langkah berikut:

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

func LoadPEMKey(file string) (*x509.PrivateKey, error) {
    pemBytes, err := os.ReadFile(file)
    if err != nil {
        return nil, err
    }

    block, _ := pem.Decode(pemBytes)
    return x509.ParsePKCS1PrivateKey(block.Bytes)
}
Salin selepas log masuk

Kunci Peribadi RSA Dikodkan PKCS#8

PKCS#8 ialah satu lagi format popular untuk menyimpan kunci peribadi RSA. Ia sering digunakan bersama dengan format PKCS#12 untuk menyimpan kunci dan sijil dalam satu fail. Untuk memuatkan kunci berkod PKCS#8, ikut langkah berikut:

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

func LoadPKCS8Key(file string) (*rsa.PrivateKey, error) {
    pemBytes, err := os.ReadFile(file)
    if err != nil {
        return nil, err
    }

    block, _ := pem.Decode(pemBytes)
    return x509.ParsePKCS8PrivateKey(block.Bytes)
}
Salin selepas log masuk

Contoh Penggunaan

Setelah anda memuatkan kunci peribadi RSA ke dalam struktur, anda boleh menggunakannya untuk menandatangani JWT dan mengesahkan tandatangan. Contohnya:

import (
    "crypto/rsa"
    "crypto/x509"
    "encoding/json"

    "github.com/golang-jwt/jwt/v4"
)

func SignJWT(keyFile string, claims map[string]interface{}) (string, error) {
    key, err := LoadPEMKey(keyFile)
    if err != nil {
        return "", err
    }

    token := jwt.NewWithClaims(jwt.SigningMethodRS512, jwt.MapClaims(claims))
    return token.SignedString(key)
}
Salin selepas log masuk

Dengan menggunakan teknik ini, anda boleh memanfaatkan kunci peribadi RSA yang disimpan dalam fail dengan berkesan untuk tujuan pengesahan dan kebenaran JWT.

Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Kunci RSA dari Fail untuk Menandatangani JWT Selamat?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan