Skip to content

Commit 6d41483

Browse files
authored
Bring github pages to current state
1 parent 450ad5b commit 6d41483

File tree

1 file changed

+85
-82
lines changed

1 file changed

+85
-82
lines changed

index.md

Lines changed: 85 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,121 @@
11
# Java based encrypting File Syncing Tool
22

33
[![Latest Release](https://img.shields.io/github/release/mgoellnitz/JFileSync3.svg)](https://github.com/mgoellnitz/JFileSync3/releases/latest)
4+
[![Build Status](https://img.shields.io/github/actions/workflow/status/mgoellnitz/JFileSync3/gradle.yml)](https://github.com/mgoellnitz/JFileSync3/actions/workflows/gradle.yml)
45
[![Build Status](https://img.shields.io/gitlab/pipeline/mgoellnitz/JFileSync3.svg)](https://gitlab.com/mgoellnitz/JFileSync3/pipelines)
56
[![Download](https://img.shields.io/badge/Download-Snapshot-blue)](https://gitlab.com/mgoellnitz/JFileSync3/-/jobs/artifacts/master/download?job=JFileSync3)
67

7-
File syncing with optional compression and encryption for local and WebDAV
8-
folders. For local folders encryption can use EncFS and thus be compatible with
9-
encfs4win, BoxCryptor Classic, Encdroid and so on.
8+
File syncing with optional compression and encryption for local and WebDAV
9+
folders. For local folders, encryption can optionally be accomplished with
10+
EncFS and thus be compatible with encfs4win, EDS Lite, Encdroid and so on.
11+
12+
[Support this project](https://ko-fi.com/backendzeit):
13+
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/L4L5T3APO)
1014

1115
JFileSync3 comes with a GUI, command line tooling, and stored profiles.
1216

13-
Find more on the scenarios where this tool might help you in in the growing
14-
[project wiki](https://github.com/mgoellnitz/JFileSync3/wiki). Recently a
15-
little bit of discussion started in the [issues area at GitHub](https://github.com/mgoellnitz/JFileSync3/issues)
17+
Find more on the scenarios where this tool might help you in the rather small
18+
[project wiki](https://github.com/mgoellnitz/JFileSync3/wiki). We have a
19+
little bit of discussion in the [issues area at GitHub](https://github.com/mgoellnitz/JFileSync3/issues),
1620
so feel free to add your comments there.
1721

18-
This software was developed because I personally needed an easy to use syncing
19-
tool to have everyday backups - without the need of multiple versions in file
20-
history - of highly confidential material - business and private.
22+
This software was developed because I personally needed an easy to use syncing
23+
tool to have everyday backups of highly confidential material - business and
24+
private. - without any need of multiple versions in file history.
2125

22-
None of the services I came accross could suit these needs.
26+
None of the services I came across could suit these needs.
2327

24-
The second reason why I find it helpful is, that I very much rely on online-syncing
25-
tools for everyday backups and felt forced to use more than one of these
26-
services.
28+
The second reason why I find it helpful is, that I very much rely on online-syncing
29+
tools for everyday backups and felt forced to use more than one of these
30+
services.
2731

28-
Using too many of them slows down your local machine too much, so I identified
29-
a set of backup areas which didn't need online syncing but just regular cloud
30-
based backup. Some of the syncing services available provide WebDAV backends,
32+
Using too many of them slows down your local machine too much, so I identified
33+
a set of backup areas which didn't need online syncing but just regular cloud
34+
based backups. Some of the syncing services available provide WebDAV backends,
3135
so I can decide to use a service online or manual (scheduled).
3236

33-
JFileSync3 is heavily based on the work of Jens Heidrich and his JFileSync2.2.
34-
After some hacking aroung in his code I felt that this one here is a fork,
35-
ripping out his original remote backends and changing the purpose of the tool
36-
quite a lot.
37+
JFileSync3 is heavily based on the work of Jens Heidrich and his JFileSync2.2.
38+
After some hacking around in his code, I felt that this one here is a fork,
39+
ripping out his original remote backends and changing the purpose of the tool
40+
quite a lot.
3741

38-
I had to realise the Jens re-started his work on the original product, so that
39-
this decision now would need some rethinking. Be aware that this code here is
42+
I had to realise, that Jens re-started his work on the original product, so that
43+
this decision now would need some rethinking. Be aware that this code here is
4044
based on the 2007 version JFileSync2.2 and not the more recent 2.3 and 2.4 work,
41-
which heads in part in similar directions as my code (ripping out the server,
45+
which heads in part in similar directions as my code (ripping out the server,
4246
using VFS, presenting a new Windows and even Mac integration). I did a manual
43-
back sync with 2.3a recently.
47+
back sync with 2.3a a while ago.
4448

4549
JFileSync is a SourceForge project and available via the following URL:
4650

4751
```
4852
http://jfilesync.sourceforge.net/
4953
```
5054

51-
Don't mix the derived work here and Jens' clean software on sourceforge. Only
52-
bother him if it's related to his original version. Other complaints go here
55+
Don't mix the derived work here and Jens' clean software on SourceForge. Only
56+
bother him if it's related to his original version. Other complaints go here
5357
:-) Feel free to add any issues to this project here.
5458

55-
Other contributions - though not directly committed by him - are from
56-
https://github.com/srmo. Thanks so much for the fruitfull discussions.
59+
Other contributions - though not directly committed by him - are from
60+
https://github.com/srmo. Thanks so much for the fruitful discussions.
5761

5862

5963
## Online Scenario
6064

61-
You replaced (or want to) your regular backups with online syncing tools and
62-
don't have backup media anymore. This helps doing backups of your work in
63-
remote situations where e.g. don't want to carry confidential backup media with
65+
You replaced (or want to) your regular backups with online syncing tools and
66+
don't have backup media anymore. This helps to do backups of your work in
67+
remote situations where e.g. don't want to carry confidential backup media with
6468
you.
6569

6670
Possible Solutions:
6771

6872
a) Trust the providers
6973

70-
Select any of them - I have some personal notes on the in the wiki.
74+
Select any of them - I have some personal notes on them in the wiki.
7175

7276
b) Trust the providers encryption
7377

74-
Use Teamdrive, or iDrive Sync. With Teamdrive you can - in some cases - even
75-
see the encrypted files depending on the backend you use. With iDrive Sync you
76-
have to provide a custom password as a base for the generated keys (This rips
77-
out some functions like sharing which gives you a hint, that they really do
78-
what they are saying).
78+
Mega might have decent encryption keys, which you can extract locally. But you
79+
cannot really see the encryption working. Other examples, I came across, are
80+
similar.
7981

80-
c) Encrypt locally on every file access and thus only sync encrypted stuff
82+
c) Encrypt locally on every file access and thus only sync encrypted stuff
8183
which you can still see.
8284

83-
Boxcryptor, EncFS come into my mind. Disadvantage here is the de- and
84-
encryption on nearly every access. Really locally stored are only the encrypted
85-
files.
85+
EncFS e.g. comes into my mind. Disadvantage here is the de- and encryption on
86+
nearly every access. Locally stored are in fact only the encrypted files.
8687

87-
d) If you trust your local system and need to store frequently accessed files,
88+
d) If you trust your local system and need to store frequently accessed files,
8889
you would like to encrypt only short before or on backing up/syncing files.
8990

90-
This is where this software fills the gap. It can sync directories, local or
91-
WebDAV, and it can do this with either of these encrypted. Additionally it can
92-
sync with encfs volumes stored in local folders. It is my common practice, that
93-
the local encrypted folders are in turn synced with one of the online syncing
91+
This is where this software fills the gap. It can sync directories, local or
92+
WebDAV, and it can do this with either of these encrypted. Additionally, it can
93+
sync with EncFS volumes stored in local folders. It is my common practice, that
94+
the local encrypted folders are in turn synced with one of the online syncing
9495
services.
9596

96-
If you use EncFS in this scenario, it is possible to access the encrypted and
97-
synced files from mobile devices with Boxcryptor Classic for iOS and Android
98-
and additionally EncFS tools for android. Also this EncFS solution is
99-
compatible with encfs4win and of course Linux based encfs.
97+
If you use EncFS in this scenario, it is possible to access the encrypted and
98+
synced files from mobile devices with FolderSync and Encroid or EDS. Also, this
99+
EncFS solution is compatible with EncFS MP on MacOS and Windows, and Linux
100+
based EncFS.
100101

101102

102103
## Requirements
103104

104-
- Java 8 Runtime Environment, OpenJDK JRE supported and recommended
105+
- Java 17 Runtime Environment, OpenJDK based JREs supported and recommended
105106

106-
- Only when using other algorithms than AES with such oldish JRE: JCE Extension
107+
We recommend using Java 17 or 21 LTS versions if possible.
107108

108109

109110
## Installation and Application Start
110111

111-
Unzip the distribution file to a directory of your choice.
112+
Though the build scripts (see below) additionally generate RPM and DEB packages,
113+
the distribution currently only consists of a ZIP file. If you are in the
114+
position, you might try the DEB or RPM package and provide feedback.
115+
116+
Unzip the distribution file to a directory of your choice. The XDG launcher
117+
script can be automatically modified to reflect this path with the script
118+
`prepare_xdg_file.sh`.
112119

113120
You can start the application through
114121

@@ -117,24 +124,20 @@ You can start the application through
117124
- a Unix shell script ('bin/JFileSync3')
118125
- a XDG launcher script ('bin/JFileSync3.desktop')
119126

120-
ATTENTION: Because JFileSync3 is distributed as a Zip archive, Unix users will
121-
have to give executable rights manually before launching the application, e.g.:
122-
'chmod a+rx bin/JFileSync3'.
123-
124-
Nearly all functions of JFileSync3 can be controlled via the Graphical User
125-
Interface (GUI). However, JFileSync3 provides full access to all features
127+
Nearly all functions of JFileSync3 can be controlled via the Graphical User
128+
Interface (GUI). However, JFileSync3 provides full access to all features
126129
(apart from plug-ins) via the command line interface. Call `bin/JFileSync3 -help`
127130
to get an overview of all possible command line options.
128131

129132

130133
## Configuration
131134

132-
JFileSync3 works with profiles controlling which folders to use, which files to
133-
include or ommit, how to log into WebDAV servers, and which encryption cipher
135+
JFileSync3 works with profiles controlling which folders to use, which files to
136+
include or omit, how to log into WebDAV servers, and which encryption cipher
134137
and passphrase to use.
135138

136-
These profiles need to be set up and can be stored in XML files. The
137-
distribution contains a set of profile file examples illustrating all the
139+
These profiles need to be set up and can be stored in XML files. The
140+
distribution contains a set of profile file examples illustrating all the
138141
intended scenarios.
139142

140143

@@ -171,23 +174,23 @@ Some code in LZMA SDK is based on public domain code from other developers:
171174
1) PPMd var.H (2001): Dmitry Shkarin
172175
2) SHA-256: Wei Dai (Crypto++ library)
173176

174-
You can find a copy all licenses of JFileSync3 and the used libraries in the
177+
You can find a copy of all licenses of JFileSync3 and the used libraries in the
175178
`legal/` directory of this distribution.
176179

177180

178181
## Development Notes
179182

180183
Required packages for JFileSync3 development (not included in the distribution):
181184

182-
* Java 8 SDK >= 1.8.0 (see 'http://java.sun.com')
183-
* Launch4j installation on the path (see https://sourceforge.net/projects/launch4j/)
185+
* Java 11 SDK or above (see e.g. `https://projects.eclipse.org/projects/adoptium`)
186+
* [Launch4j](https://sourceforge.net/projects/launch4j/) installation on the path
184187

185-
Used and as a result recommended development tools:
188+
Used, and as a result recommended, development tools are:
186189

187-
* OpenJDK 11.0
188-
* Netbeans 12.5
190+
* OpenJDK 17, or 21 respectively.
191+
* Netbeans 21 or above
189192

190-
The following structure describes all directories and files included in the
193+
The following structure describes all directories and files included in the
191194
JFileSync3 source repository:
192195

193196
- src: Java source code
@@ -197,23 +200,23 @@ JFileSync3 source repository:
197200
- win: start scripts for parts of the system as tools - and a Windows icon file
198201
- test: profiles and data for the encryption test suite
199202

200-
The encryption backend tries its very best to avoid known plaintext attacks
201-
with filenames like in directory names (`src/main/java`) and with the contents
203+
The encryption backend tries its very best, to avoid known plaintext attacks
204+
with filenames like in directory names (`src/main/java`) and with the contents
202205
of the files.
203206

204-
The contents are compressed before they are encrypted (in most cases -
205-
depending on size and special file types) and the software tries three
206-
algorithms to do that - LZMS, BZIP2, Deflate - in parallel.
207+
The contents are compressed before they are encrypted (in most cases -
208+
depending on size and special file types) and the software tries three
209+
algorithms to do that - LZMA, BZIP2, Deflate - concurrently.
207210

208211
The filenames are encoded, scrambled and then encrypted.
209212

210-
Metafiles to speed up access of the directory structures don't have constant
211-
names but calculated ones.
213+
Metafiles to speed up access of the directory structures don't have constant
214+
names, but calculated ones.
212215

213-
Passwords to derive keys from are not constant along the whole directory
216+
Passwords to derive keys from are not constant along the whole directory
214217
structure.
215218

216-
For oldish Java 8 setups you will need the unlimited encryption add-on by
219+
For oldish Java 8 setups, you will need the unlimited encryption add-on by
217220
Oracle for your JDK, if you want to use anything except the default cipher AES.
218221

219222
Feel free to issue bug reports and ideas here.
@@ -235,10 +238,10 @@ and can be started - e.g. for IDE integration - through
235238
./gradlew run
236239
```
237240

238-
Take the ZIP file from build/distributions.
241+
Take the ZIP, DEB, or RPM file from build/distributions.
239242

240-
A small test-suite can be found in profiles/test (which is not packaged in the
241-
distribtions zip) and can be called via
243+
A small test-suite can be found in profiles/test (which is not packaged in the
244+
distribution zip) and can be called via
242245

243246
```bash
244247
./gradlew encryptionTest

0 commit comments

Comments
 (0)