• Server-side encryption: means that data will be encrypted as soon as the server receives it, and the data will also be decrypted on the server before being sent back to the client.
  • End-to-end encryption: means that data will be encrypted and decrypted on the client side.

When user upload file the file will be encrypted on the client side and then sent to the server. The server will store the encrypted file and will not be able to decrypt it. When the user wants to download the file, the server will send the encrypted file back to the client, and the client will decrypt it.

The file will be encrypted using the AES encryption algorithm with a 256-bit key. The key will be encrypted using the RSA encryption algorithm with a 2048-bit key. The RSA key will be encrypted using the user’s password.

When the user wants to download the file, the server will send the encrypted file back to the client. The client will then decrypt the file using the RSA key, which will be decrypted using the user’s password. The file will then be decrypted using the AES key.