есть бот помощник для биржи, помогите с защитой.Он создаёт текстовый файл с апи и секретом в каталоге, но как его не засовывай все равно легко найти, как можно его зашифровать или вообще что бы не писал ,мне достаточно если я в коде где то его пропишу и все раз и навсегда.
/// <summary>
/// загрузить настройки сервера из файла
/// </summary>
public void Load()
{
if (!File.Exists(@"socket\" + @"api.txt"))
{
return;
}
try
{
using (StreamReader reader = new StreamReader(@"socket\" + @"api.txt"))
{
UserId = reader.ReadLine();
UserKey = reader.ReadLine();
_countDaysTickNeadToSave = Convert.ToInt32(reader.ReadLine());
_neadToSaveTicks = Convert.ToBoolean(reader.ReadLine());
IsDemo = Convert.ToBoolean(reader.ReadLine());
reader.Close();
}
}
catch (Exception)
{
// ignored
}
}
/// <summary>
/// сохранить настройки сервера в файл
/// </summary>
public void Save()
{
try
{
using (StreamWriter writer = new StreamWriter(@"socket\" + @"api.txt", false))
{
writer.WriteLine(UserId);
writer.WriteLine(UserKey);
writer.WriteLine(CountDaysTickNeadToSave);
writer.WriteLine(NeadToSaveTicks);
writer.WriteLine(IsDemo);
writer.Close();
}
}
catch (Exception)
{
// ignored
}
}
Помощник в открытом доступе нашел, вот и хочу переделать под себя, а страшно оставлять на сервере например.
Я просто только не давно изучаю , помогите, пожалуйста.
Нашел пример но не могу сообразить как хотя бы параметр UserKey шифровать и расшифровывать.
static void Main(string[] args)
{
ushort secretKey = 0x0088; // Секретный ключ (длина - 16 bit).
string str = "Hello World"; //это строка которую мы зашифруем
str = EncodeDecrypt(str, secretKey); //производим шифрование
Console.WriteLine(str); //выводим в консоль зашифрованную строку
str = EncodeDecrypt(str, secretKey); //производим рассшифровку
Console.WriteLine(str); //выводим в консоль расшифрованную строку
Console.ReadKey();
}
public static string EncodeDecrypt(string str, ushort secretKey)
{
var ch = str.ToArray(); //преобразуем строку в символы
string newStr = ""; //переменная которая будет содержать зашифрованную строку
foreach (var c in ch) //выбираем каждый элемент из массива символов нашей строки
newStr += TopSecret(c, secretKey); //производим шифрование каждого отдельного элемента и сохраняем его в строку
return newStr;
}
public static char TopSecret(char character, ushort secretKey)
{
character = (char)(character ^ secretKey); //Производим XOR операцию
return character;
}
Или вот тоже пример но как его применить не пойму:
// Шифруем текст, и записываем его в файл
FileStream stream = new FileStream("C:\\mytext.txt", FileMode.OpenOrCreate, FileAccess.Write);
DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
CryptoStream crStream = new CryptoStream(stream,
cryptic.CreateEncryptor(),CryptoStreamMode.Write);
byte[] data = ASCIIEncoding.ASCII.GetBytes("Hello World!");
crStream.Write(data,0,data.Length);
crStream.Close();
stream.Close();
//Дешифруем текст и выводим результат дешифрации в консоль
FileStream stream = new FileStream("C:\\mytext.txt",
FileMode.Open,FileAccess.Read);
DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
CryptoStream crStream = new CryptoStream(stream,
cryptic.CreateDecryptor(),CryptoStreamMode.Read);
StreamReader reader = new StreamReader(crStream);
string data = reader.ReadToEnd();
Console.WriteLine(data);
Console.ReadKey();
reader.Close();
stream.Close();
В таком случае надо использовать ХЭШ-коды (одностороннее шифрование). Пример можете посмотреть, например здесь: "Класс для работы с паролями в среде .NET" на сайте http://rsdn.org/
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Довольно специфичная проблемаЕсть приложение WPF, которое тянет компонент форм WebBrowser
Изучаю asterisk и на данный момент уже поднял сервер на Ubuntu и совершаю звонки с/на устройствахИнтересует вопрос: можно ли каким-нибудь образом...