DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des fichiers externes
  • Gestion des erreurs
  • Fonctionnement sous Windows Vista (et supérieur)
  • Cryptage/Décryptage d'une chaîne de caractères
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Crypte un fichier sous forme binaire ou ASCII.
Remarque : Ce fichier peut être décrypté avec fDécrypte.
WINDEVWEBDEV - Code ServeurEtats et RequêtesJavaCode Utilisateur (MCU)Ajax
// Cryptage d'un fichier
ResCrypte = fCrypte("C:\MesRépertoires\Fichier.txt", "C:\MesRépertoires\FichierCrypté.txt", "MotDePasse")
Syntaxe
<Résultat> = fCrypte(<Chemin du fichier à crypter> , <Chemin du fichier crypté> , <Mot de passe> [, <Type de cryptage> [, <Format du fichier crypté>]])
<Résultat> : Booléen
  • Vrai si le cryptage a été effectué,
  • Faux dans le cas contraire. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Chemin du fichier à crypter> : Chaîne de caractères
Nom et chemin complet (ou relatif) du fichier à crypter (260 caractères maximum). Un chemin de type UNC peut être utilisé.
WindowsLinux Ce paramètre peut être au format Ansi ou Unicode.
AndroidWidget Android Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous Android, sur l'appareil comme sur l'émulateur, le système de fichiers est en lecture seule. Une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires, ainsi que sur la mémoire externe (SDCard).
iPhone/iPadWidget IOSMac Catalyst Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous les iPhone/iPad, sur l'appareil comme sur l'émulateur, le système de fichiers est en lecture seule. Une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires.
<Chemin du fichier crypté> : Chaîne de caractères
Nom et chemin complet (ou relatif) du fichier crypté (260 caractères maximum). Un chemin de type UNC peut être utilisé.
WindowsLinux Ce paramètre peut être au format Ansi ou Unicode.
AndroidWidget Android Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous Android, sur l'appareil comme sur l'émulateur, le système de fichiers est en lecture seule. Une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires, ainsi que sur la mémoire externe (SDCard).
iPhone/iPadWidget IOSMac Catalyst Ce paramètre peut correspondre à un chemin complet ou relatif par rapport au répertoire en cours (connu avec la fonction fRepEnCours). Ce paramètre est sensible à la casse.
Rappel : Sous les iPhone/iPad, sur l'appareil comme sur l'émulateur, le système de fichiers est en lecture seule. Une application a uniquement le droit d'écrire dans son répertoire d'installation ou dans un de ses sous-répertoires.
<Mot de passe> : Chaîne de caractères
Mot de passe utilisé pour crypter le fichier. Ce mot de passe sera utilisé pour décrypter le fichier crypté (fonction fDécrypte). Un mot de passe long permet une meilleure sécurité de cryptage.
<Type de cryptage> : Constante optionnelle
Indique le type de cryptage :
crypteAucunAucun cryptage n'est effectué.
crypteRapide
(Valeur par défaut)
La priorité est donnée à la rapidité du cryptage (algorithme sur 128 bits).
Java L'algorithme utilisé sera de type Blowfish.
AndroidWidget Android Cette constante n'est pas disponible.
PHP L'algorithme utilisé sera de type Blowfish à 16 rondes.
crypteRC516La priorité est donnée à la sécurité du cryptage (algorithme RC5 sur 16 rondes).
AndroidWidget AndroidJavaPHP Cette constante n'a aucun effet.
crypteSécuriséLa priorité est donnée à la sécurité du cryptage (algorithme RC5 sur 128 bits).
AndroidWidget AndroidJava L'algorithme utilisé sera de type PBE (Password Based Encryption).
PHP L'algorithme utilisé sera de type RIJNDAEL 128 bits.
<Format du fichier crypté> : Constante optionnelle de type Entier
Indique le format du fichier crypté :
encodeAucun ou FauxFormat binaire.
Le fichier crypté pourra comporter des caractères non-imprimables. La taille du fichier sera supérieure (environ 4 octets) à la taille du fichier d'origine.
encodeBASE64Format BASE 64.
Le fichier est crypté avec l'algorithme BASE64. La taille du fichier sera supérieure (environ 30%) à la taille du fichier d'origine.
Ce format peut par exemple être utilisé pour insérer un fichier crypté dans le corps d'un courrier électronique.
encodePCS ou Vrai
(Valeur par défaut)
Format ASCII.
Le fichier crypté ne comportera que des caractères imprimables. La taille du fichier sera supérieure (environ 30%) à la taille du fichier d'origine.
Ce format peut par exemple être utilisé pour insérer un fichier crypté dans le corps d'un courrier électronique.
encodeUUEncodeFormat UUEncode.
Le fichier est crypté avec l'algorithme UUEncode. La taille du fichier sera supérieure (environ 30%) à la taille du fichier d'origine.
Ce format peut par exemple être utilisé pour insérer un fichier crypté dans le corps d'un courrier électronique.

AndroidWidget AndroidJava Ce paramètre est ignoré.
Remarques

Gestion des erreurs

La fonction fCrypte génère une erreur dans les cas suivants :
  • le fichier à crypter n'existe pas,
  • le fichier à crypter est bloqué,
  • le chemin du fichier à crypter est invalide,
  • le <Mot de passe> est une chaîne vide,
  • l'utilisateur n'a pas les droits en lecture sur le fichier à crypter,
  • l'utilisateur n'a pas les droits en écriture sur le fichier crypté.
WINDEVWEBDEV - Code ServeurEtats et RequêtesCode Utilisateur (MCU)

Fonctionnement sous Windows Vista (et supérieur)

Si cette fonction ne fonctionne pas correctement sous Windows Vista (et supérieur), il est nécessaire de vérifier si le fichier ou le répertoire manipulé ne se trouve pas dans un des répertoires système (répertoire de Windows ou répertoire "Program Files").
En effet, sous Windows Vista (et supérieur), avec le mécanisme de l'UAC (contrôle des comptes utilisateurs) activé, il est nécessaire d'avoir les privilèges administrateur pour manipuler / modifier des fichiers ou des répertoires présents dans les répertoires système (répertoire de Windows ou répertoire "Program Files").
Conseil de programmation : Si vous devez manipuler / modifier des fichiers ou des répertoires, sans avoir besoin de privilèges administrateur, il est conseillé :
  • de ne pas écrire dans le répertoire de Windows ou dans le répertoire "Program Files",
  • d'utiliser le répertoire système correspondant à l'application (connu par la fonction SysRep par exemple avec la constante srAppDataCommun).
Remarque : Sous Windows Vista (et supérieur), le mécanisme de la virtualisation permet de rendre les applications compatibles Vista. Si le fichier est créé dans un répertoire système sans avoir les droits nécessaires, ce fichier sera réellement créé dans un autre répertoire (C:\Users\<LOGIN>AppData\Local\VirtualStore\Windows\). Dans ce cas, le fichier ne pourra pas être partagé entre plusieurs applications.

Cryptage/Décryptage d'une chaîne de caractères

Pour crypter/décrypter une chaîne de caractères, utilisez les fonctions Crypte et Décrypte.
PHP Cryptage en PHP
En PHP, le cryptage de type BlowFish (constante crypteRapide) et le cryptage de type RINJDAEL (constante crypteSécurisé) s'appuient sur la librairie MCrypt. Cette librairie est très courante chez les hébergeurs PHP, et donc toujours activée. Cette librairie peut être téléchargée sur le site de PHP.
Pour activer si nécessaire cette librairie en local, les éléments nécessaires sont :
  • PHP installé.
  • le fichier PHP.INI présent dans le répertoire Windows doit avoir la ligne "extension=php_mcrypt.dll".
  • le fichier php_mcrypt.dll doit exister dans le répertoire des extensions PHP. Ce répertoire est défini dans le fichier PHP.INI par la variable "extension_dir".
AndroidJava Cryptage en Android/Java et décryptage par une application WINDEV (ou inversement)
Attention : les algorithmes de cryptage/décryptage utilisés en Java et Android ne sont pas les mêmes que ceux utilisés par WINDEV. Il n'est donc pas possible de crypter une fichier en Java ou Android et de le décrypter avec WINDEV (et inversement).
Liste des exemples associés :
Les fonctions de chiffrement (CrypteXXX, DécrypteXXX) Exemples unitaires (WINDEV) : Les fonctions de chiffrement (CrypteXXX, DécrypteXXX)
[ + ] Utilisation des fonctions de chiffrement de WINDEV.
Cet exemple permet de :
- Chiffrer une chaîne de caractères
- Déchiffrer une chaîne de caractères
Les fonctions de chiffrement Exemples unitaires (WINDEV Mobile) : Les fonctions de chiffrement
[ + ] Utilisation des fonctions WLangage de chiffrement.
Cet exemple permet de :
- Chiffrer une chaîne de caractères
- Déchiffrer une chaîne de caractères
Composante : wd290std.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 23/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale