PC SOFT
DEPOT EN LIGNE
POUR  WINDEVWEBDEV ET  WINDEV MOBILE

Chiffrement ZIP et Partage de Secret
Publié par Jean GAUDREAU
dans la catégorie Outils
Nouveautés



Description
Classe CShamirNative7z : Chiffrement ZIP et Partage de Secret de Shamir (100% Natif WLangage)

Bonjour à tous,

Je partage avec vous aujourd'hui une classe 100% native WLangage permettant de sécuriser des archives (ZIP) en utilisant le célèbre algorithme cryptographique de partage de secret de Shamir (Shamir's Secret Sharing).

?? Le concept

Le schéma de Shamir permet de diviser un secret (ici, un mot de passe très fort généré aléatoirement) en N clés (parts). Pour reconstruire ce mot de passe et déchiffrer l'archive, il faudra réunir un seuil minimum de K clés.

Exemple d'usage : Vous protégez un document RH confidentiel en générant 5 clés. Vous distribuez ces clés à 5 directeurs. Vous paramétrez le seuil à 3. Ainsi, le fichier ne pourra être ouvert que si au moins 3 directeurs réunissent leurs clés. Si un ou deux directeurs perdent leur clé, le fichier reste récupérable. S'ils ne sont que deux, le fichier est mathématiquement indéchiffrable.

?? Les points forts de cette classe

100% Natif WLangage : AUCUNE dépendance externe. Pas de DLL, pas d'API Windows, pas de script Python ou .NET. Un simple copier-coller de la classe dans votre projet suffit. Déploiement garanti sans prise de tête !

Mathématiques Infaillibles : Le cœur de l'algorithme a été codé de zéro en utilisant l'algèbre des Corps de Galois finis GF(2^8). Il utilise le polynôme irréductible cryptographique standard 0x11D (285) garantissant un générateur primitif parfait.

Sécurité de la Mémoire : La classe a été blindée contre les pièges classiques du WLangage (conversions ANSI/Unicode implicites, corruption de Buffers). Toutes les manipulations d'octets passent par des séquences hexadécimales strictes (HexaVersEntier / EntierVersHexa).

Clés de taille optimisée : Les clés générées sont compactes, lisibles et peuvent être facilement envoyées par email, stockées en BDD ou imprimées sous forme de QR Code.

??? Méthodes Principales

ProtegerArchive(sCheminSource, sCheminArchive7z, nSeuilRequis = 2, nTotalCles = 3)

Action : Génère un mot de passe fort (16 caractères), crée une archive ZIP chiffrée contenant votre fichier, découpe le mot de passe, et vous renvoie le tableau des clés générées.

Retour : Un tableau de chaînes contenant les clés.

ExtraireArchive(sCheminArchive7z, sDossierDestination, tabClesSaisies)

Action : Prend les clés fournies, reconstruit le mot de passe via interpolation polynomiale de Lagrange sur GF(256), et extrait l'archive dans le dossier cible.

Retour : Un booléen (Vrai si succès, Faux si clés insuffisantes, invalides ou archive corrompue).

?? Exemple d'utilisation

oSecurite est un CShamirNative7z
sFichierSource est une chaîne = "C:\Temp\Secret.pdf"
sArchiveCible est une chaîne = "C:\Temp\ArchiveProtegee.zip"
sDossierExtraction est une chaîne = "C:\Temp\Extraction\"

// ==========================================
// 1. CRÉATION (Exemple : 2 requises sur 3)
// ==========================================
tabMesCles est un tableau de chaînes
tabMesCles = oSecurite.ProtegerArchive(sFichierSource, sArchiveCible, 2, 3)

SI tabMesCles..Occurrence = 3 ALORS
Info("Archive chiffrée avec succès ! Voici les clés générées :", ...
"Clé 1 (Alice) : " + tabMesCles[1], ...
"Clé 2 (Bob) : " + tabMesCles[2], ...
"Clé 3 (Charlie) : " + tabMesCles[3])
FIN

// ==========================================
// 2. EXTRACTION (Avec seulement 2 clés sur 3)
// ==========================================
tabClesSaisies est un tableau de chaînes
// Admettons que Charlie est absent, Alice et Bob veulent ouvrir l'archive :
TableauAjoute(tabClesSaisies, tabMesCles[1]) // Clé d'Alice
TableauAjoute(tabClesSaisies, tabMesCles[2]) // Clé de Bob

bSucces est un booléen = oSecurite.ExtraireArchive(sArchiveCible, sDossierExtraction, tabClesSaisies)

SI bSucces ALORS
Info("Succès !", "L'archive a été déchiffrée avec 2 clés !")
SINON
Erreur("Échec de l'extraction.")
FIN


N'hésitez pas à l'intégrer dans vos projets nécessitant des protocoles de sécurité avancés (coffres-forts numériques, gestion de mots de passe maîtres, protection de données RGPD sensibles avec multi-approbation).

Bons développements à tous !
Illustrations, copies d'écran
none
none
<
>
Avis des utilisateurs
(Pour noter la ressource, cliquez sur Ecrire un avis)
Vous devez d'abord
pour pouvoir poster un avis
Bertin - Zen-Project
Merci
A PROPOS
EVALUATION :
51(1)
TELECHARGEMENTS :
44
PUBLIÉE :
06 avril 2026
VERSION :
1.0
CONCERNE :
WINDEV
Version minimale : 01A31.2.018
TAILLE :
990,4 Ko