The VFS folder's XML files in CrushFTP also can support encryption on their URL.  You may especially want to do this when using a FTP or SFTP client URL in it.

''(Currently this is a manual process, and you can't use the user manager or it will override your changes.  This will change in the near future.)''

Non-encrypted VFS file:
{{{
<?xml version="1.0" encoding="UTF-8"?>
<VFS type="vector">
    <VFS_subitem type="properties">
        <url>FILE://my_files/</url>
        <type>dir</type>
    </VFS_subitem>
</VFS>
}}}
 
Same VFS file, encrypted:
{{{
<?xml version="1.0" encoding="UTF-8"?>
<VFS type="vector">
    <VFS_subitem type="properties">
        <url>rWhicoSffe3vlpg0bN95pTh96F</url>
        <type>dir</type>
        <encrypted>true</encrypted>
    </VFS_subitem>
</VFS>
}}}

That encrypted string can be generated from the command line:
{{{
java -jar CrushFTP.jar -p DES FILE://myfiles/
}}}
----
Developers can also further extend this to use their own custom class file that does the encryption.

Example:
{{{
<?xml version="1.0" encoding="UTF-8"?>
<VFS type="vector">
    <VFS_subitem type="properties">
        <url>FILE://{HIDDEN_PATH}</url>
        <type>dir</type>
        <encrypted>true</encrypted>
        <encrypted_class>com.crushftp.handlers.MyDecryptorExample</encrypted_class>
    </VFS_subitem>
</VFS>
}}}

Not only does this allow you to decrypt the data using your own routines, or from an external server, but it also allows you to adjust the object entirely that comes back.

The constructor of the class is passed in one argument, a java.util.Properties object.  You can modify it.  Only the constructor is called though.

In later versions of CrushFTP10 and upwards, it is possible to bulk encrypt or decrypt all VFS URLs in one command
{{{java -jar CrushFTP.jar -TOGGLEVFSENCRYPTION MainUsers decrypt}}}
//
{{{java -jar CrushFTP.jar -TOGGLEVFSENCRYPTION MainUsers encrypt}}}