Почему файл INI содержит повторяющиеся строки? - PullRequest
0 голосов
/ 28 февраля 2012

Я пытаюсь зашифровать целый INI-файл, чтобы сделать его нечитаемым.Мой код дублирует ту же строку.Ниже приведен код, который запускается 3 раза с результатом, вставленным в INI-файл:

[c7DuuqP28h8 =]

nJvr1BlIML2vaJtyHa4jHw === X84CG / IurDg =

nJaHH1HV1=== X84CG / IurDg =

nJvr1BlIML2vaJtyHa4jHw === X84CG / IurDg =

Вот мой код:

    [DllImport("kernel32")]
    private static extern long WritePrivateProfileString(string section,
        string key, string val, string filePath);
    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section,
             string key, string def, StringBuilder retVal,
        int size, string filePath);


    public void IniWriteValue(string Section, string Key, string Value)
    {
        if (!String.IsNullOrEmpty(passphrase))
        {
            Section = Encryption.EncryptString(Section, passphrase);
            Key = Encryption.EncryptString(Key, passphrase);
            Value = Encryption.EncryptString(Value, passphrase);
        }
        WritePrivateProfileString(Section, Key, Value, this.path);
    }

      //Calling the function
      ini.IniWriteValue("Login", "username", chkRememberUsername.Checked ? username.Text : "");

ОБНОВЛЕНИЕ:

Из-за того, что если Keyname или Value содержит знак =, тогда строка становится другой, чем оригинал.Поэтому мне нужно исключить знак = из обоих Keyname & Value.Я нашел и нашел решение Pack & Unpack для Marc Gravell и использовал его в обратном порядке для кодирования = знаков.

Кодирование строк только в виде числовых символов

...