Repository navigation
v3.0
-
Добавил возможность зашифровать файл перед отправкой на сервер, если пользователь хочет этого.
Как шифруется файл:
- В библиотеке
yfs_keygenгенерируется ключ из рандомных символов, которые записаны в константеDICT. Длина ключа варьируется от 16 до 64 символов (возможно позже сделаю кастомную длину ключа). - Потом ключ превращается в массив типа
byte(byte[] _keyBytes) - Далее происходит следуещее:
- Читается байт с файла
- Происходит операция:
прочтённый байтXORN-ый байт (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:
- до этой версии был баг, который позволял выйти за рамки выделенной папки. Например у сервера была выделенная директория
(пересоздал этот тег)