Я пытаюсь зашифровать целый 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 и использовал его в обратном порядке для кодирования = знаков.
Кодирование строк только в виде числовых символов