tout dépend des besoins. le chiffrement est trés contraignant dans la programmation car il vas faire baisser les performances de lecture des données.
plus il y à de donnée à chiffrer/déchiffrer et plus l'algorithme est complexe, plus les performances seront affectées.
les algorithmes de rotation ou xor sont trés simple mais peu fiable, ils éviterons que les "simple utilisateurs" puisse lire la donnée ou que la donnée soit au moins non-identifiable au premier abord.
mais quelqu'un de plus téméraire et patient aura vite fait d'identifier cette donnée.
la protection basée sur le matériel est encore plus contraignante.
A) basé sur le numéro de serie du disque dur -> impossible de changer de disque ou de modifier une lettre de lecteur.
B) basé sur l'adresse MAC de la carte réseaux -> impossible de désactiver la carte réseaux en cas de dysfonctionnement, impossible de changer de carte réseaux.
C) basé sur le numéro de serie du CD d'installation -> "impossible" de créer une sauvegarde du support quand les premiers signe de fatigue de ce dernier apparaitront (rayure, oxydation etc), nécessite la présence systématique du support et donc l'use prématurément.
D) basé sur des clefs de registre -> hasardeux et tout aussi contraignant, une modification ou restauration du registre pourrait modifier ces clefs et donc rendre le logiciel acquit légalement, inutilisable.
E) la vérification en ligne -> empêche l'utilisation du logiciel en cas de coupure de la connexion internet ou en cas de non disponibilité du serveur.
qu'elle solution alors ?
pour les données, laisser le choix à l'utilisateur des méthodes de protection.
lui donner par exemple 3 ou 4 méthodes de chiffrement au choix, et 2 ou 3 méthodes de somme pour les clefs.
exemple :
sauvegarder mon documents -> champs chiffrement ->
[] ne pas chiffrer mon document
[] protection simple (DES) -> hash clef privée Sum64
[] protection moyenne (3DES) -> hash clef privée MD5/SHA1/RIPEMD160
[] protection haute B (Blowfish) -> hash clef privée SHA2-384
[] protection haute T (TwoFish) -> hash clef privée SHA2-256
[] protection haute S (Serpent) -> hash clef privée SHA2-256
[] protection haute R (Rijndael) -> hash clef privée SHA2-256
et pour le logiciel, tout simplement -> version Demo limité en fonctionnalité (réglage, options avancée, protection des données etc)
Version complète sur paiement de licence.