ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / Encryption/compression functions
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 buffer en utilisant un algorithme de chiffrement asymétrique (RSA) nécessitant une clé publique et une clé privée.
Ce message crypté pourra être décrypté :
Exemple
// Cryptage d'une chaîne de caractères
// ---------------------------------------
bufACrypter est un Buffer = "Message à crypter"
bufMessageCrypté est un Buffer
sFichierCléPublique est une chaîne = fRepExe() + "\ClePublique.pem"
sMotDePasseCléPublique est une chaîne = "xxx"
 
bufMessageCrypté = CrypteAsymétrique(bufACrypter, sFichierCléPublique, ...
sMotDePasseCléPublique, cryptePaddingPKCS1)
 
// Décryptage  
// -------------
bufMessageCrypté est un Buffer
bufMessageDécrypté est un Buffer
sFichierCléPrivée est une chaîne = fRepExe() + "\ClePrivee.pem"
sMotDePasseCléPrivée est une chaîne = "xxx"
 
bufMessageDécrypté = DécrypteAsymétrique(bufMessageCrypté, sFichierCléPrivée, ...
sMotDePasseCléPrivée, cryptePaddingPKCS1)
bufACrypter est un Buffer = ChaîneVersUTF8("สวัสดี Test")
bufCléPrivée est un Buffer
bufCléPublique est un Buffer
(bufCléPrivée, bufCléPublique) = CrypteGénèreCléRSA(1024)
// Cryptage
bufChiffré est un Buffer = CrypteAsymétrique(bufACrypter, bufCléPublique)
bufSign est un Buffer = CertificatSigneChaîne(bufChiffré, bufCléPrivée, "", ...
certSignatureSeule + certSHA256)
// Décryptage
SI CertificatVérifieChaîne(bufChiffré, bufSign, bufCléPublique, "", "", ...
certSignatureSeule + certSHA256) ALORS
bufClair est un Buffer = DécrypteAsymétrique(bufChiffré, bufCléPrivée)
Trace("Message authentique")
Trace(UTF8VersChaîne(bufClair))
SINON
Trace("Message non authentifié")
FIN
Syntaxe
<Résultat> = CrypteAsymétrique(<Contenu à crypter> , <Fichier clé publique> [, <Mot de passe> [, <Remplissage>]])
<Résultat> : Chaîne de caractères ou Buffer
Résultat du cryptage du message spécifié.
<Contenu à crypter> : Buffer
Buffer à crypter.
Attention : La taille du message à crypter doit être inférieure à la taille de la clé diminuée de la taille minimum du padding (11 octets pour PKCS1 et 41 pour OAEP).
Par exemple, pour une clé de 4096 bits et le padding OAEP, le message ne peut dépasser 471 octets.
<Fichier clé publique> : Chaîne de caractères ou Buffer
  • Nom et chemin du fichier correspondant à la clé publique à utiliser pour crypter. Les formats de clé pem, der et p12 sont supportés.
  • Buffer contenant la clé publique à utiliser pour crypter.
<Mot de passe> : Chaîne de caractères optionnelle
Mot de passe du fichier de clé (si nécessaire).
<Remplissage> : Constante optionnelle de type Entier
Mode de remplissage des données cryptées pour être compatibles avec la taille requise par les algorithmes de cryptage par blocs :
cryptePaddingOAEPRemplissage effectué selon l'algorithme OAEP (Optimal Asymmetric Encryption Padding).
cryptePaddingPKCS1
(Valeur par défaut)
Remplissage effectué selon l'algorithme PKCS 1 (Public Key Cryptographic Standards).
Liste des exemples associés :
Chiffrement asymétrique Exemples unitaires (WINDEV) : Chiffrement asymétrique
[ + ] Utilisation des fonctions WLangage de chiffrement asymétrique (CrypteAsymétrique, DécrypteAsymétrique)
Classification Métier / UI : Code métier
Composante : wd290com.dll
Minimum version required
  • Version 24
Comments
Click [Add] to post a comment

Last update: 03/31/2023

Send a report | Local help