IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Ecrire en base de registre et encrypter la valeur


Sujet :

C#

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut Ecrire en base de registre et encrypter la valeur
    Bonjour,

    Est ce quelqu'un a un exemple de code pour créer une valeur en base de registre et encrypter la valeur ?

    Merci à vous

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Tu peux utiliser la classe RegistryKey.
    Pour chiffrer ca dépend de l'algo que tu souhaites utiliser.

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    A noter que tu peux aussi utiliser des ACL dans la base de registre. Seul l'utilisateur qui a écrit dedans est donc capable de relire l'information (ou un admin). C'est une solution avantageuse par rapport à l'encryption :
    - aucune encrytpion n'est véritable sûre
    - généralement, on souhaite crypter pour qu'un second utilisateur n'accède pas à l'information, ce que font déjà les ACL, de façon propre
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Bonjour,

    Auriez vous un exemple utilisant les ACL ?
    Merci à vous

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    bonjour,

    j'ai à présent l'extrait de code qui suit et qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
            /// <summary>
            /// Fonction qui écrit le mot de passe dans la base de registre windows
            /// </summary>
            /// <param name="sPassWord"></param>
            private void WriteValue(string regKey, string regKeyValue, string regValue)
            {
                RegistryKey Nkey = Registry.CurrentUser;
     
                try
                {
                    RegistryKey valKey = Nkey.OpenSubKey("Software\\monAppli\\" + regKey, true);
                    if (valKey == null) { valKey =  Nkey.CreateSubKey("Software\\monAppli\\" + regKey); }
     
                    valKey.SetValue(regKeyValue, regValue);
                }
                catch (Exception er)
                {
                    MessageBox.Show(er.Message, "monAppli", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
                finally
                {
                    Nkey.Close();
                }
            }
    Reste à encrypter la valeur ... est ce possible ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    http://stackoverflow.com/questions/8...my-application


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var cypherText = "Some string to encrypt".ToSecureString().EncryptString();
    var clearText = cypherText.DecryptString().ToInsecureString();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    using System;
    using System.Collections.Generic;
    using System.Runtime.InteropServices;
    using System.Security;
    using System.Security.Cryptography;
    using System.Text;
     
    public static class SecureIt
    {
        private static readonly byte[] entropy = Encoding.Unicode.GetBytes("Salt Is Not A Password");
     
        public static string EncryptString(this SecureString input)
        {
            if (input == null)
            {
                return null;
            }
     
            var encryptedData = ProtectedData.Protect(
                Encoding.Unicode.GetBytes(input.ToInsecureString()),
                entropy,
                DataProtectionScope.CurrentUser);
     
            return Convert.ToBase64String(encryptedData);
        }
     
        public static SecureString DecryptString(this string encryptedData)
        {
            if (encryptedData == null)
            {
                return null;
            }
     
            try
            {
                var decryptedData = ProtectedData.Unprotect(
                    Convert.FromBase64String(encryptedData),
                    entropy,
                    DataProtectionScope.CurrentUser);
     
                return Encoding.Unicode.GetString(decryptedData).ToSecureString();
            }
            catch
            {
                return new SecureString();
            }
        }
     
        public static SecureString ToSecureString(this IEnumerable<char> input)
        {
            if (input == null)
            {
                return null;
            }
     
            var secure = new SecureString();
     
            foreach (var c in input)
            {
                secure.AppendChar(c);
            }
     
            secure.MakeReadOnly();
            return secure;
        }
     
        public static string ToInsecureString(this SecureString input)
        {
            if (input == null)
            {
                return null;
            }
     
            var ptr = Marshal.SecureStringToBSTR(input);
     
            try
            {
                return Marshal.PtrToStringBSTR(ptr);
            }
            finally
            {
                Marshal.ZeroFreeBSTR(ptr);
            }
        }
    }

  7. #7
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Merci je vois cela ....

Discussions similaires

  1. Lire / ecrire dans base de registre
    Par vbnet3 dans le forum C
    Réponses: 1
    Dernier message: 01/04/2011, 14h35
  2. Réponses: 0
    Dernier message: 02/04/2009, 11h06
  3. [VB6]ecrire une chaine de byte dans la base de registre
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 17/12/2008, 10h50
  4. [Base de registre] : Inscription d'une valeur.
    Par portu dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 07/04/2005, 15h04
  5. [Base de Registre] Nouveaux type de valeur !?
    Par Lung dans le forum Langage
    Réponses: 4
    Dernier message: 07/04/2004, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo