Bonjour,
Comment je peux crypter un mot de passe qui est stocké dans un variable "String" avant de l'envoyer sur le réseau?
J'espère que vous pouvez m'aider,
Et merci d'avance.
Bonjour,
Comment je peux crypter un mot de passe qui est stocké dans un variable "String" avant de l'envoyer sur le réseau?
J'espère que vous pouvez m'aider,
Et merci d'avance.
Peut être que ça t'aideras : java2s
Le 10ème post de ce topic contient une classe plus récente prenant en charge MD5 et SHA1.
Donc pour répondre à ta question, soit tu hashes ta chaine, sauf que cela implique d'avoir nécessairement le hash de l'autre côté de ta connexion pour faire la comparaison, soit tu chiffres la connexion (SSL).
Merci pour vous mais vous avez très compliqué le problème.
En fait ce n'est qu'un chiffrement d'une chaine de caractère.
Merci pour vous mais vous avez très compliqué le problème.
fais comme tu le sens![]()
Pour chiffrer chiffrer un mot de passe à destination d'un réseau de manière réellement sécurisé, il faut:
Coté serveur généré une pair clé public/clé privé:
Transmettre la clé public au client:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SecureRandom sr = new SecureRandom(); KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(keysize, sr); KeyPair keypair = keyGen.generateKeyPair(); PrivateKey privateKey = keypair.getPrivate(); PublicKey publicKey = keypair.getPublic();
Coté client, chiffrer le mot de passe avec la clé public:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //Coté serveur: //récupère le tableau d'octets de la clé public byte[] key = publicKey.getEncoded(); //envoyer le tableau d'octet ... //Coté client //récupère le tableau d'octets de la clé public à partir du réseau byte[] key = ... //Construit l'instance de la clé public X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
Sur le serveur, déchiffrer avec la clé privé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] cryptedPassword = cipher.doFinal("monmotdepasse".getBytes()); //Transmettre cryptedPassword via le réseau ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //Récupérer sur le réseau le mot chiffré byte[] cryptedPassword = ... //déchiffrer Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] uncryptedPassword = cipher.doFinal(cryptedPassword); String motdepasse = new String(uncryptedPassword);
Partager