Do java.security.Key.getEncoded() gibt Daten in DER kodiertes Format?
Wenn nicht, gibt es eine Methode, die das tut?
UPDATE: Eine Schlüsselschnittstelle mit einer Implementierung eines privaten RSA-Schlüssels
Do java.security.Key.getEncoded() gibt Daten in DER kodiertes Format?
Wenn nicht, gibt es eine Methode, die das tut?
UPDATE: Eine Schlüsselschnittstelle mit einer Implementierung eines privaten RSA-Schlüssels
Abhängig von der Art des Schlüssels. Die meisten symmetrischen Schlüssel liefern rohe Bytes ohne Kodierung. Die meisten öffentlichen Schlüssel verwenden ASN.1/DER-Kodierung.
Es sollte Ihnen egal sein, wie der Schlüssel verschlüsselt ist. Behandeln Sie getEncoded als Serialisierungsfunktion. Sie gibt die Byte-Stream-Darstellung des Schlüssels zurück, die gespeichert und später wieder in den Schlüssel umgewandelt werden kann.
Bei privaten RSA-Schlüsseln kann er als PKCS#1 oder PKCS#8 kodiert sein. PKCS#1 ist die bevorzugte Kodierung, da sie zusätzliche CRT-Parameter enthält, die die Verarbeitung privater Schlüssel beschleunigen.
Sun JCE erzeugt Schlüsselpaare immer in PKCS#1-Kodierung, so dass der private Schlüssel immer in diesem in PKCS#1 definierten Format kodiert ist,
--
-- Representation of RSA private key with information for the CRT algorithm.
--
RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}
Version ::= INTEGER { two-prime(0), multi(1) }
(CONSTRAINED BY {-- version must be multi if otherPrimeInfos present --})
OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo
OtherPrimeInfo ::= SEQUENCE {
prime INTEGER, -- ri
exponent INTEGER, -- di
coefficient INTEGER -- ti
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.