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/...
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
Vous devez vous connecter pour publier un commentaire.
Votre format de la clé est un non crypté en base64 PKCS8 codé de la clé privée. Voici un exemple de comment le décoder dans une clé privée. (Ne vous inquiétez pas au sujet de la sécurité de la clé privée dans cet exemple, il est tout simplement un jetable pour l'exemple).
Non, pas nécessairement. La mise en œuvre peut par exemple changer la position de p et q dans la forme codée, ce qui aura pour résultat différent (mais équivalent) de sortie.
merci pour la réponse. donc vous voulez dire qu'elle n'aura aucun effet sur la négociation ssl?
Il ne devrait pas.
ok merci beaucoup, vraiment beaucoup apprécié. pourriez-vous passer un commentaire sur la suite s'il vous plaît. mon ca la clé est de 4096 et mon cert clé est de 2048 rsa. parfois, pendant le handshake ssl, il stucks/pend. je me demandais sa car certains dns résoudre chose. sera la longueur de la clé ont un effet sur? J'ai déjà posé une question ici: stackoverflow.com/questions/43863646/ssl-handshake-hang
OriginalL'auteur James K Polk