Comparaison des versions
comparé à
Légende
- Ces lignes ont été ajoutées. Ce mot a été ajouté.
- Ces lignes ont été supprimées. Ce mot a été supprimé.
- La mise en forme a été modifiée.
Commentaire:
encryption= chiffrage
Section | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Le principe
Vous pouvez demander des paramètres de chiffrement à Payline afin d'encoder vos données sensibles pour vos appels web services.
Les étapes de chiffrement
Le traitement se déroule en 3 étapes :
- Le marchand demande des paramètres pour générer la clef d'encryptionde chiffrement.
- Le marchand encrypte les données sensibles sur son serveur.
- Le marchand appelle les web services de Payline avec les données encryptées.
Comment intégrer
l'encryptionces paramètres de chiffrement
Pour commencer cette étape, vous devez avoir un commerçant et une clef d'accès marchand.
Vous devez intégrer les web services Payline et connaitre l'encryption le chiffrement de données RSA :
- getEncryptionKey : permet de récupérer les paramètres d'encryption pour encrypter de chiffrement pour chiffrer votre message.
Vous devez intégrer les web services Payline :
- Le marchand réalise un getEncryptionKey : permet de récupérer les paramètres d'encryptionde chiffrement.
Le marchand récupère les paramètres d'encryption de chiffrement et la key.keyId de getEncryptionKeyReponse - Le marchand peut alors encrypter le message avec les données sensibles.
La fonction d'encryption de chiffrement doit :- générer une clef public avec les paramètres récupérés dans le getEncryptionKeyReponse : algo, modulus, exponent ;
- construire la clé publique avec les paramètres : Modulus et publicExponent ;
- construire le cipher Cipher est retouné par retouné par le service service getEncryptionKeyReponse ;
- encrypter le message avec les paramètres suivant : le message formaté avec les données sensibles, le cipher Cipher et la publicKeyPublicKey.
Message = "CardNumber=497010000000006,ExpDate=0220,CVX=123,OwnerBirthDate=,Password=PaylineXXXX,Cardholder=John Doe" - encoder le message en base64.
- Le marchand peut alors appeler les web services Payline en transmettant le message encrypté dans la balise encryptionData et la clef ID du service getEncryptionKeyReponse dans la balise encryptionKeyId.
Consulter le wbs getEncryptionKey pour lister les wbs utilisant le message encrypté.
A partir de la version 21 : Payline rajoute des éléments Cipher, Algo et Size pour encrypter chiffrer le message.
Bloc de code | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
public void getRSAEncodedMessage() throws Exception{ String message = "CardNumber=497010000000006,ExpDate=0220,CVX=123,OwnerBirthDate=,Password=Payline,Cardholder=Alain Durand"; String cipherName = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding"; Cipher cipher = Cipher.getInstance(cipherName); String algo = "RSA"; String modulus = "AOLndIya3+ViAuP07V1Ky+YRuZK6zsMUsVIPP3xhFCS1CSJb9oBLmmzkMMASAn0TQ7BrELuNbY1+9VT30ah1N0mX0BzIBqE5sojV+CkafF+LtIntpF1wUhguXlcFOXcBLCECiMA4gBqHJMrVxnF626M1S6Wi2++WUwFgPTtHdn4B7e0RMvWqFr6uKBDq1qhdP8iziiAn/YPPp5ObgxuabWvPAZvRMDmgflNLYCOZB05LjZXMDvkLaYy244iY0tmVWwa7WYi2lJ7N0wK6gpDXD1WQh42AQuyVQX9i/m3oOjH8iqdRZG8FuaoHkBtON9zhz+ZyuBAwb+zNZWBDvnp6V0E="; String publicExponent = "AQAB"; final KeyFactory fact = KeyFactory.getInstance(algo); PublicKey publicKey = fact.generatePublic(new RSAPublicKeySpec(new BigInteger(Base64.decodeBase64(modulus.getBytes())), new BigInteger(Base64.decodeBase64(publicExponent.getBytes())))); System.out.println("Message encoded : " + Base64.encodeBase64String(encrypt(cipher, publicKey, message))); } public static byte[] encrypt(Cipher cipher, Key key, String message) throws Exception { cipher.init(Cipher.ENCRYPT_MODE, key); return cipher.doFinal(message.getBytes()); } |
Pages associées
Contenu par étiquette | ||||||||
---|---|---|---|---|---|---|---|---|
|
Center | ||||||||
---|---|---|---|---|---|---|---|---|
|