Ich versuche, eine Nachricht mit SH1 RSA
zu codieren, aber ich habe keine Erfahrung mit Sicherheit Thema außer einigen Basisinformationen über RSA
. Ich habe einen privaten Schlüssel als String
erhalten. Ich habe es geschafft, den folgenden Code-Block zu schreiben, um den Job zu machen, aber ich bin mir nicht sicher, ob ich den Job sicher und richtig mache.Java: Wie kann ich PrivateKey aus einer Zeichenfolge generieren?
Ich bin kein Experte, aber meine privaten Schlüssel als String in Code ist nicht sicher, denke ich. Kann mir jemand helfen?
String privateKeyString = "mykeyhere...";
byte[] privateKeyBytes = privateKeyString.getBytes();
String encodedPrivateKey = Base64.encodeToString(privateKeyBytes, Base64.URL_SAFE);
KeyFactory factory = KeyFactory.getInstance(RSA);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encodedPrivateKey.getBytes());
RSAPrivateKey privateKey = (RSAPrivateKey) factory.generatePrivate(keySpec);
Signature instance = Signature.getInstance(ALGORITHM);
instance.initSign(privateKey);
instance.update(content.getBytes());
return new String(instance.sign());
Meine privaten Schlüssel ist in Form wie:
"-----BEGIN PRIVATE KEY-----\n"+
"MIIE...\n"+
"cH0iRj...\n"+
"O0Hhj...\n"+
.
.
.
"fG6...\n"+
"B6/hF...\n"+
"3Mq38...\n"+
"-----END PRIVATE KEY-----\n"
Was ist der privateKeyString? ein Passwort? oder ein echter numerischer privater RSA-Schlüssel? und in welchem Format ist angegeben? Base64? Verhexen? Andere? –
@konstantinosChalkias, Ich habe mein Schlüsselformat hinzugefügt. –
Haben Sie Keystore ausprobiert? http://stackoverflow.com/questions/9890313/how-to-use-keystore-in-java-to-store-private-key#answer-27869798 –