Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use sha256 to generate signature #21

Open
Zmove opened this issue Jan 24, 2021 · 0 comments
Open

use sha256 to generate signature #21

Zmove opened this issue Jan 24, 2021 · 0 comments

Comments

@Zmove
Copy link

Zmove commented Jan 24, 2021

Hello,

I believe you can now use sha256 to generate signature. I saw that the generateSignature function only use sha1.

Here is the code example I have from the bank (société générale, that use payzen) :

for sha256

    function getSignature ($params,$key)
    {
     /**
     * Fonction qui calcule la signature.
     * $params : tableau contenant les champs à envoyer dans le formulaire.
     * $key : clé de TEST ou de PRODUCTION
     */
     //Initialisation de la variable qui contiendra la chaine à chiffrer
     $contenu_signature = "";
     //Tri des champs par ordre alphabétique
     ksort($params);
     foreach($params as $nom=>$valeur){
     //Récupération des champs vads_
     if (substr($nom,0,5)=='vads_'){
     //Concaténation avec le séparateur "+"
     $contenu_signature .= $valeur."+";
     }
     }
     //Ajout de la clé en fin de chaine
     $contenu_signature .= $key;
     //Encodage base64 de la chaine chiffrée avec l'algorithme HMAC-SHA-256
     $signature = base64_encode(hash_hmac('sha256',$contenu_signature, $key, true));
     return $signature;
     } 

for sha1

    function getSignature($params, $key)
    {
     /**
     * Fonction qui calcule la signature.
     * $params : tableau contenant les champs à envoyer dans le formulaire.
     * $key : clé de TEST ou de PRODUCTION
     */
     //Initialisation de la variable qui contiendra la chaine à chiffrer
     $contenu_signature = "" ;
    
     // Tri des champs par ordre alphabétique
     ksort($params);
     foreach ($params as $nom =>$valeur){
    
     // Récupération des champs vads_
     if (substr($nom,0,5)=='vads_') {
    
     // Concaténation avec le séparateur "+"
     $contenu_signature .= $valeur."+";
     }
     }
     // Ajout de la clé à la fin
     $contenu_signature .= $key;
    
     // Application de l’algorythme SHA-1
     $signature = sha1($contenu_signature);
     return $signature ;
    }

Best regards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant