diff --git a/app/controller/bank.php b/app/controller/bank.php
index d20b0cd5e06cacce1a6aa5c78efad91fef174fb6..06fa05118f5adb5588bcb9523f08f00912be6c2c 100644
--- a/app/controller/bank.php
+++ b/app/controller/bank.php
@@ -81,9 +81,11 @@ class Bank extends Controller
             $sig .= $value . "+";
         }
         $sig .= CERTIFICATE;
-        $cb_log->write("sig: " . $signature . " == " . sha1($sig));
-        if (sha1($sig)!=$signature) {
-            $error = "Error in signature: " . $signature . " != " . sha1($sig);
+        ### Attempt to do it in hmac-sha256
+        $sig_hash = base64_encode(hash_hmac('sha256', $sig, CERTIFICATE, true));
+        $cb_log->write("sig: " . $signature . " == " . $sig_hash);
+        if ($sig_hash!=$signature) {
+            $error = "Error in signature: " . $signature . " != " . $sig_hash;
         }
         // Résultats des vérifications globales
         if ($error!="") {
diff --git a/app/controller/campaign.php b/app/controller/campaign.php
index 551bfa8220aacd048b8328c7a6ac87bf459cef1f..f8a71a439f9f04ebf6bda7526b8f9d5cd59b6037 100644
--- a/app/controller/campaign.php
+++ b/app/controller/campaign.php
@@ -196,7 +196,7 @@ class Campaign extends Controller
             $signature .= $value."+";
         }
         $signature .= CERTIFICATE;
-        $signature = sha1($signature);
+        $signature = base64_encode(hash_hmac('sha256', $signature, CERTIFICATE, true));
         $params["signature"] = $signature;
 
         $f3->set('target', $target);
diff --git a/app/controller/perso.php b/app/controller/perso.php
index cdf509043f9dcbc3a6c70a598fedd1d4ff762346..230685c3cf3eb2d4abf334550f88594822548f51 100644
--- a/app/controller/perso.php
+++ b/app/controller/perso.php
@@ -531,7 +531,8 @@ class Perso extends Controller
             $signature .= $value."+";
         }
         $signature .= CERTIFICATE;
-        $signature = sha1($signature);
+        $signature = base64_encode(hash_hmac('sha256', $signature, CERTIFICATE, true));
+        #$signature = sha1($signature);
         $parameters["wsSignature"] = $signature;
         $client = new \SoapClient("https://paiement.systempay.fr/vads-ws/ident-v2.1?wsdl");
         $result = $client->customerCancel($parameters);