profile-pic

Jordan Hook

Software Developer


Last Modified: 12/12/2020

This page needs to be updated with information from the 2.0.0 release. Please see the new github project for more information.

FastFileTransfer is a .NET application that implements it's own file transfer protocol to provide file management over a network connection; WAN or LAN. The purpose of this application was to further develop my skills such as networking, data streams and file manipulation. The application utilizes a TCP connection between the file host (server) and the client in order to provide directory listings, directory management and even the ability to download files. A full listing of features will be available below:

Completed Functionality

The items listed below are currently in a complete status and have been tested over a WAN connection.

  • TCP Asynchronous connection
    • All data is encrypted with the RC4, XOR, AES 256 (CBC Mode) or Blowfish (ECB Mode)  algorithm
    • All data is compressed with GZIP before encryption
  • File Browser
    • Traverse through the file system similar to how you would any other FTP system by click on drives / directories
    • Directory Management - Create, Move, Delete
    • File Management - Move, Delete
  • File Transfers
    • Download and upload files with status tracking
    • Ability to pause/resume and cancel file transfers
    • Calculate transfer speeds
  • Preferences
    • Saves user configurations to file (loaded on startup)
    • Preferences such as:
      • Choose encryption algorithm
      • Choose compress algorithm
To do

The following functionality are items I would like to add to the software in the future in order to improve and further enhance it's current state. The functionality is not listed in any particular order and maybe completed at any time.

  • File Transfer Updated 22/03/2020
    • Ability to pause/resume and cancel file transfers
    • Calculate transfer speeds
  • Cryptography
    • Add additional algorithms: XOR, AES, blowfish?, others? Updated 23/03/2020
  • Compression
    • Add ability to compress data streams or files before transferring: GZIP, LZO, LZMA Updated 21/03/2020
    • Ability to compress a directory or file from the file browser before transferring
  • User preferences Updated 22/03/2020
    • There is no customization currently available for application, most settings are hard coded with the exception of the password
    • Preferences such as:
      • Choose encryption algorithm
      • Choose compress algorithm
      • Limit connection speed
      • Modify server settings (such as listening port)
  • File Searching
    • Ability to search through the whole file system or a specified directory for a defined string(s)
Download
Screenshots