Le chiffrement et le Déchiffrement avec X. 509 public certificat
Je veux crypter mon post de charge utile avec un X. 509 certificate et de l'héritage de la clé publique. Pour l'instant j'ai ce code java pour effectuer le chiffrement
private String encrypt(String str) throws Exception {
ClassPathResource classPathResource = new ClassPathResource("testcert1.crt");
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)certificateFactory.generateCertificate(classPathResource.getInputStream());
PublicKey pk = certificate.getPublicKey();
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");
cipher.init(Cipher.ENCRYPT_MODE, pk);
return Base64.encodeBase64String(cipher.doFinal(str.getBytes()));
}
qui retourne la chaîne encodée en base64. À partir de l'ordinateur d'extrémité, je suis toujours d'obtenir le résultat, que le certificat n'est pas valide.
Donc je veux valider ma chaîne cryptée sur la console à l'aide de la openssl
de commande, mais ne pas le faire.
Je peux lire le certificat avec: openssl x509 -in testcert1.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=xxx, ST=xxx, L=xxx, O=xxx, OU=xxx, CN=xxx
Validity
Not Before: Jul 24 11:40:39 2013 GMT
Not After : Jul 24 11:40:39 2015 GMT
Subject: C=xxx, ST=xxx, L=xxx, O=xxx, OU=xxx, CN=xxx
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (4096 bit)
Modulus (4096 bit):
....
Exponent: 65537 (0x10001)
Mais je ne peux pas comprendre les lignes de commande pour crypter/décrypter un fichier texte à l'aide de ce certificat
md5WithRSAEncryption
et 4096 bits de la clé est un réel décalage. Peut-être vous devriez envisager desha256WithRSAEncryption
. MD5 a moins de 64-bits de sécurité restants, tout en 4096 bits module dispose de plus de 128 bits de sécurité. MD5 est cassé, et ne peut pas fournir la collision de la résistance au fil du temps.- ok je vais prendre que, pour l'examen. Je n'ai pas été celui de la création de la clé, plutôt que le consommateur qui a reçu la clé d'un tiers
- Pourquoi? Pourquoi ne pas utiliser le protocole HTTPS comme tout le monde?
- Et quelle chaîne cryptée. Si le certificat n'est pas valide, comment pouvez-vous peut-être obtenir un cryptage? Et où la trace de la pile pour que l'exception?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez valider votre chaîne cryptée à l'aide d'openssl avec la commande suivante:
Que vous utilisez le chiffrement asymétrique, si vous chiffrer à l'aide de la clé publique de votre certificat, vous ne pouvez déchiffrer à l'aide de la clé privée correspondante. Assurez-vous que la clé et l'utiliser pour le décryptage.