diff --git a/client/modules/vitis/forms/user/user_vitis_user.json b/client/modules/vitis/forms/user/user_vitis_user.json
index a5dacd7e5ccd46a776a8381a46c298adce8ab53f..6f550c0bd851c4a256a832dd97f7b8ef1d7a0a2c 100644
--- a/client/modules/vitis/forms/user/user_vitis_user.json
+++ b/client/modules/vitis/forms/user/user_vitis_user.json
@@ -139,7 +139,7 @@
                         "type": "radio",
                         "name": "dataencrypt",
                         "label": "FORM_DATAENCRYPT_USER_USER",
-                        "nb_cols": 5,
+                        "nb_cols": 3,
                         "options": {
                             "choices": [
                                 {
@@ -162,12 +162,19 @@
                         "nb_cols": 1
                     },
                     {
-                        "type": "text",
+                        "type": "password",
                         "name": "secretkey",
                         "label": "FORM_SECRETKEY_USER_USER",
                         "required": false,
                         "pattern": "^[^\t\r\n]+$",
-                        "nb_cols": 6
+                        "visible": "= {{dataencrypt}} === true",
+                        "tooltip": {
+                                "title":"",
+                                "content":"FORM_DATAENCRYPT_TOOLTIP_USER_USER",
+                                "container": "body",
+                                "html": true
+                        },
+                        "nb_cols": 8
                     }
                 ]
             },
diff --git a/client/modules/vitis/javascript/script_module.js b/client/modules/vitis/javascript/script_module.js
index 716b8de908bc4dfb057afe25e838d92aa2463531..b15867c294f4eb7a6c96f0103c68d1c1af9c2b04 100644
--- a/client/modules/vitis/javascript/script_module.js
+++ b/client/modules/vitis/javascript/script_module.js
@@ -34,13 +34,11 @@ vitisApp.on('appMainDrtvLoaded', function () {
         // Cryptage de la clé secrète.
         var oFormValues = envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]];
         oFormValues['encrypted_secretkey'] = "";
-        if (oFormValues['dataencrypt'] === true && (goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) !== "0x")) {
+        if ((goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) !== "0x")) {
             var key = oFormValues['login'];
             var ciphertext = des(key, oFormValues['secretkey'], 1, 0);
             oFormValues['encrypted_secretkey'] = stringToHex(ciphertext);
         }
-        else if (oFormValues['dataencrypt'] === false)
-            oFormValues['secretkey'] = "";
         // Changement de mot de passe ?
         var oPasswordInput = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] input[name='password']");
         var oPasswordConfirmInput = document.querySelector("form[name='" + envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["name"] + "'] input[name='password_confirm']");
@@ -101,7 +99,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
             }
         }
         // Décryptage de la clé secrète.
-        if (oFormValues['dataencrypt'] === true && (goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) === "0x")) {
+        if ((goog.isDefAndNotNull(oFormValues['secretkey']) && oFormValues['secretkey'] != "" && oFormValues['secretkey'].substr(0, 2) === "0x")) {
             var key = oFormValues['login'];
             // Décrypte et Suprimme les caractères "NULL".
             oFormValues['secretkey'] = des(key, hexToString(oFormValues['secretkey']), 0, 0).replace(/\x00/g, "");
@@ -284,7 +282,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
             link: function (scope, element, attrs) {
                 // 1er affichage ou tri de la liste : maj de la mise en forme.
                 var clearObserver = attrs.$observe("appUserRoleColumn", function (value) {
-                    // Si le champ est vide : supprime l'icône.  
+                    // Si le champ est vide : supprime l'icône.
                     if (scope["row"]["entity"][scope["col"]["field"]] === null || scope["row"]["entity"][scope["col"]["field"]] === "")
                         element[0].className = "";
                     else {
@@ -700,35 +698,33 @@ vitisApp.on('appMainDrtvLoaded', function () {
                 }
             }
             // Chargement de la clé secrète (le web service vitis/users ne doit pas la retourner).
-            if (oFormValues['dataencrypt'] === true) {
-                var oUrlParams = {
-                    "schema": "s_vitis",
-                    "table": "user",
-                    "filter": {
-                        "relation": "AND",
-                        "operators": [{
-                                "column": "user_id",
-                                "compare_operator": "=",
-                                "value": oFormValues["user_id"]
-                            }]
-                    },
-                    "attributs": "secretkey"
-                };
-                ajaxRequest({
-                    "method": "GET",
-                    "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/genericquerys/user",
-                    "params": oUrlParams,
-                    "success": function (response) {
-                        if (response["data"]["status"] != 0) {
-                            // Décryptage de la clé secrète.
-                            var oUserSecretKey = envSrvc["extractWebServiceData"]("genericquerys", response["data"])[0];
-                            if (goog.isDefAndNotNull(oUserSecretKey['secretkey']) && oUserSecretKey['secretkey'] != "" && oUserSecretKey['secretkey'].substr(0, 2) === "0x") {
-                                oFormValues['secretkey'] = des (oFormValues['login'], hexToString(oUserSecretKey['secretkey']), 0, 0).replace(/\x00/g, "");
-                            }
-                        }
-                    }
-                });
-            }
+              var oUrlParams = {
+                  "schema": "s_vitis",
+                  "table": "user",
+                  "filter": {
+                      "relation": "AND",
+                      "operators": [{
+                              "column": "user_id",
+                              "compare_operator": "=",
+                              "value": oFormValues["user_id"]
+                          }]
+                  },
+                  "attributs": "secretkey"
+              };
+              ajaxRequest({
+                  "method": "GET",
+                  "url": propertiesSrvc["web_server_name"] + "/" + propertiesSrvc["services_alias"] + "/vitis/genericquerys/user",
+                  "params": oUrlParams,
+                  "success": function (response) {
+                      if (response["data"]["status"] != 0) {
+                          // Décryptage de la clé secrète.
+                          var oUserSecretKey = envSrvc["extractWebServiceData"]("genericquerys", response["data"])[0];
+                          if (goog.isDefAndNotNull(oUserSecretKey['secretkey']) && oUserSecretKey['secretkey'] != "" && oUserSecretKey['secretkey'].substr(0, 2) === "0x") {
+                              oFormValues['secretkey'] = des (oFormValues['login'], hexToString(oUserSecretKey['secretkey']), 0, 0).replace(/\x00/g, "");
+                          }
+                      }
+                  }
+              });
         });
     };
 
@@ -1693,9 +1689,9 @@ vitisApp.on('appMainDrtvLoaded', function () {
 
         envSrvc["oFormDefinition"][envSrvc["sFormDefinitionName"]]["rows"].push(aMethodFields);
         envSrvc["oFormValues"][envSrvc["sFormDefinitionName"]]["tr_status_method"] = sMethod;
-        // l'event submit du formulaire sera appelé après cette fonction 
+        // l'event submit du formulaire sera appelé après cette fonction
     };
-    
+
     /**
      * loadVitisExploitation function.
      * Chargement des sections du mode "exploitation".
@@ -1709,7 +1705,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
         // Passage en mode "Update" (pour afficher les sections).
         envSrvc["sMode"] = "update";
     };
-    
+
     /**
      * initExploitationSharedDirectoryForm function.
      * Chargement de l'arborescence du répertoire partagé.
@@ -1738,7 +1734,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
             document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").clientHeight - 221 + "px";
         });
     };
-    
+
     /**
      * refreshExploitationSharedDirectoryTreeview function.
      * Recharge les données du treeview du répertoire partagé.
@@ -1761,7 +1757,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
             document.getElementById(oFormElementDefinition["id"] + "_treeview").style.height = document.getElementById("container_mode_exploitation").parentElement.clientHeight - 221 + "px";
         });
     };
-    
+
     /**
      * loadExploitationSharedDirectoryTreeviewData function.
      * Charge les données du treeview du répertoire partagé.
@@ -1788,7 +1784,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
         });
         return promise;
     };
-    
+
     /**
      * deleteSharedDirectoryFiles function.
      * Charge les données du treeview du répertoire partagé.
@@ -1846,7 +1842,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
             $rootScope["modalWindow"]("confirm", "", oOptions);
         }
     };
-    
+
     /**
      * createSharedDirectoryFolder function.
      * Création d'un répertoire dans le répertoire partagé.
@@ -1897,7 +1893,7 @@ vitisApp.on('appMainDrtvLoaded', function () {
             $rootScope["modalWindow"]("dialog", "FORM_NO_DIRECTORY_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"});
         }
     };
-    
+
     /**
      * uploadSharedDirectoryFile function.
      * Upload d'un fichier dans le répertoire partagé.
@@ -1952,4 +1948,4 @@ vitisApp.on('appMainDrtvLoaded', function () {
             $rootScope["modalWindow"]("dialog", "FORM_NO_FILE_EXPLOITATION_EXPLOITATION", {"className": "modal-danger"});
         }
     };
-});
\ No newline at end of file
+});
diff --git a/client/modules/vitis/lang/lang-en.json b/client/modules/vitis/lang/lang-en.json
index dc98a487ebd474dde8d906521ce10687fd6b5a2f..c59597f57237e1b798a09f72cfd22bf7a37df7ce 100644
--- a/client/modules/vitis/lang/lang-en.json
+++ b/client/modules/vitis/lang/lang-en.json
@@ -152,6 +152,7 @@
     "FORM_PHONE_USER_USER" : "Telephone number (for SMS) in international E.164 format (+33 6 xx xx xx xx)",
     "FORM_TIMEZONE_ID_USER_USER" : "Time Zone",
     "FORM_FORMATDATE_ID_USER_USER" : "Date display format",
+    "FORM_DATAENCRYPT_TOOLTIP_USER_USER" : "The results produced by GTF will be encrypted using the \"AES 256\" algorithm, you will need a suitable tool to open these files. (ex: 7zip)",
     "": "",
     "USER_ROLE_TOOLTIP_TITLE_USERS_USER": "Description",
     "USER_ROLE_ADMIN_TOOLTIP_CONTENT_USERS_USER": "Administrator",
diff --git a/client/modules/vitis/lang/lang-fr.json b/client/modules/vitis/lang/lang-fr.json
index 9a882aa04bad00781d3d5434d5ee6f052a6bd3c3..3d61e64f4793d9987186c9080dab9b6924caf827 100644
--- a/client/modules/vitis/lang/lang-fr.json
+++ b/client/modules/vitis/lang/lang-fr.json
@@ -154,6 +154,7 @@
     "FORM_PHONE_USER_USER" : "N° de téléphone (pour SMS) au format international E.164 (+33 6 xx xx xx xx)",
     "FORM_TIMEZONE_ID_USER_USER" : "Fuseau horaire",
     "FORM_FORMATDATE_ID_USER_USER" : "Format d'affichage des dates",
+    "FORM_DATAENCRYPT_TOOLTIP_USER_USER" : "Les résultats produits par GTF seront cryptés en utilisant l'algorithme 'AES 256', il vous faudra un outil adapté pour ouvrir ces fichiers. (ex: 7zip)",
     "": "",
     "USER_ROLE_TOOLTIP_TITLE_USERS_USER": "Description",
     "USER_ROLE_ADMIN_TOOLTIP_CONTENT_USERS_USER": "Administrateur",
diff --git a/vas/rest/ws/vitis/Users.class.inc b/vas/rest/ws/vitis/Users.class.inc
index 56ec511d7a516ff8aba5dce2358a5c15e95c5444..85fa8078684d68a54cb2458929d12413413de62a 100755
--- a/vas/rest/ws/vitis/Users.class.inc
+++ b/vas/rest/ws/vitis/Users.class.inc
@@ -416,10 +416,7 @@ class Users extends Vitis {
             $sLogin = mb_strtolower($this->aValues["login"], 'UTF-8');
             $sLogin = str_replace(array('à', 'â', 'ä', 'á', 'ã', 'å', 'î', 'ï', 'ì', 'í', 'ô', 'ö', 'ò', 'ó', 'õ', 'ø', 'ù', 'û', 'ü', 'ú', 'é', 'è', 'ê', 'ë', 'ç', 'ÿ', 'ñ'), array('a', 'a', 'a', 'a', 'a', 'a', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'e', 'e', 'e', 'e', 'c', 'y', 'n',), $sLogin);
             unset($this->aValues['login']);
-            if (!empty($this->aValues['encrypted_secretkey']))
-                $this->aValues['secretkey'] = $this->aValues['encrypted_secretkey'];
-            else
-                $this->aValues['secretkey'] = null;
+            $this->aValues['secretkey'] = $this->aValues['encrypted_secretkey'];
             $aReturn = $this->genericPut($this->aProperties['schema_framework'], 'v_user', 'user_id');
             $aXmlRacineAttribute['status'] = $aReturn['sStatus'];
             $sMessage = $aReturn['sMessage'];