Java: Comment puis-je générer PrivateKey à partir d'une chaîne?

Je suis en train de coder un message avec SH1 RSA mais je n'ai aucune expérience avec la sécurité de l'objet à l'exception de quelques informations de base sur RSA. J'ai reçu une clé privée comme String. J'ai réussi à écrire bloc de code suivant pour faire le travail, mais je ne suis pas sûr si je suis en train de faire le travail en toute sécurité et correctement.

Je ne suis pas un expert, mais de mettre ma clé privée comme une Chaîne de caractères dans le code n'est pas sécurisé, je suppose. Quelqu'un peut-il me guider?

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());

Ma clé privée est en forme comme:

"-----BEGIN PRIVATE KEY-----\n"+
"MIIE...\n"+
"cH0iRj...\n"+
"O0Hhj...\n"+
.
.
.
"fG6...\n"+
"B6/hF...\n"+
"3Mq38...\n"+
"-----END PRIVATE KEY-----\n"
qu'est-ce que le privateKeyString? un mot de passe? ou une vraie numérique clé privée RSA? et dans quel format est-il donné? Base64? Hex? Les autres?
J'ai ajouté mon format de la clé.
Avez-vous essayé de magasin de clés? stackoverflow.com/questions/9890313/...

OriginalL'auteur Olcay Ertaş | 2015-12-24