Heim > Artikel > Backend-Entwicklung > Wie lade ich RSA-Schlüssel aus Dateien für sichere JWT-Signierung?
Laden von RSA-Schlüsseln aus Dateien für die sichere JWT-Signierung
Das Signieren von JWTs erfordert häufig die Verwendung privater RSA-Schlüssel zur Authentifizierung und Integritätsüberprüfung. Um diese Schlüssel nutzen zu können, ist es wichtig, den Prozess des Extrahierens aus Dateien zu verstehen.
PEM-kodierte private RSA-Schlüssel
Das gebräuchlichste Format zum Speichern privater RSA-Schlüssel Bei den Schlüsseln handelt es sich um PEM-Codierung, gekennzeichnet durch die Kopf- und Fußzeilen „-----BEGIN RSA PRIVATE KEY-----“ und „-----END RSA PRIVATE KEY-----“. Um einen PEM-codierten Schlüssel zu laden, können Sie die folgenden Schritte ausführen:
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) }
PKCS#8-codierte RSA-Privatschlüssel
PKCS#8 ist ein weiteres beliebtes Format zum Speichern privater RSA-Schlüssel. Es wird häufig in Verbindung mit dem PKCS#12-Format zum Speichern von Schlüsseln und Zertifikaten in einer einzigen Datei verwendet. Um einen PKCS#8-codierten Schlüssel zu laden, befolgen Sie diese Schritte:
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) }
Beispielverwendung
Sobald Sie den privaten RSA-Schlüssel in eine Struktur geladen haben, können Sie kann damit JWTs signieren und Signaturen überprüfen. Zum Beispiel:
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) }
Durch den Einsatz dieser Techniken können Sie in Dateien gespeicherte private RSA-Schlüssel effektiv für JWT-Authentifizierungs- und Autorisierungszwecke nutzen.
Das obige ist der detaillierte Inhalt vonWie lade ich RSA-Schlüssel aus Dateien für sichere JWT-Signierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!