Skip to content

v3.0

Choose a tag to compare

@norealist norealist released this 26 Sep 19:25
· 9 commits to master since this release
  • Добавил возможность зашифровать файл перед отправкой на сервер, если пользователь хочет этого.

    Как шифруется файл:

    • В библиотеке yfs_keygen генерируется ключ из рандомных символов, которые записаны в константе DICT. Длина ключа варьируется от 16 до 64 символов (возможно позже сделаю кастомную длину ключа).
    • Потом ключ превращается в массив типа byte (byte[] _keyBytes)
    • Далее происходит следуещее:
      • Читается байт с файла
      • Происходит операция: прочтённый байт XOR N-ый байт (1,2,3,4 и тд) с массива _keyBytes
      • После байт инвертируется
      • Крч если не поняли вот код
      string key = new YFSkeygen()._keygen();
      byte[] _keyBytes = new YFSkeygen()._keyBytes(key);
      
      Console.WriteLine("\n[...] Файл шифруется перед отправкой. Подождите");
      while (readFile.BaseStream.Position != readFile.BaseStream.Length)
      {
         byte wb = readFile.ReadByte();
         foreach (byte b in _keyBytes)
         {
             wb ^= b;
             wb = (byte)(BYTE255 - wb);
         }
         writeFile.Write(wb);
      }
    • Зашифрованный файл отправляется на сервер, а ключ сохраняется в файле server_ip_addres.keytable
  • Изменил интерфейс

  • Добавил дополнительные обработки исключения, чтобы сервер не выключался

  • Теперь не получиться выйти за рамки выделенной директории сервера

    • до этой версии был баг, который позволял выйти за рамки выделенной папки. Например у сервера была выделенная директория D:\myserver, если перейти в папку / или .. или ../.., то ты бы попал в диск D:

(пересоздал этот тег)