boxcryptor加密文件名编码现已开源

2020-05-09 04
您是否曾经想过,为什么加密的文件名包含亚洲字符?一年多以前,我们为新一代Boxcryptor进行了文件名加密的下一个改进。在此过程中,我们必须解决一个今天没有人期望的问题-当人们从127,851英尺跳下我们降落在彗星上 问题:所有Microsoft Windows版本的核心部分仍然只能处理最大256个字符的文件路径。这些核心部分包括例如Windows资源管理器。 由于可以在Windows资源管理器中访问路径较长的文件,因此许多云存储提供商也不会同步路径长度超过260个字符的文件,例如Dropbox。由于加密文件名比纯文本文件名需要更多的字节,因此我们必须找到一种方法来最小化对加密文件名进行编码所需的字符数,以使我们的用户不会经常达到260个字符的限制。 解决此问题的方法是使用Unicode字符而不是ASCII字符。1个ASCII字符可以传输1个字节的信息,而Unicode字符可以传输最多4个字节的信息。这意味着以其他方式用4个ASCII字符编码的信息可适合单个Unicode字符。与现有的编码方案(如Base64)类似,我们开发了一种新的二进制到文本编码方案,称为Base4K,它使用4000个不同的Unicode字符。虽然Base64比字节需要更多的字符,但是Base4K比字节需要更少的字符。就字符长度而言,Base4K的效率比Base64高50%。 因此,从一开始就回答这个问题非常简单:我们需要4000个不同的字符,而常规字母表中的ASCII字符也不够。 由于我们是开放源代码的忠实拥护者,并且我们自己在Boxcryptor中使用不同的开放源代码库,因此我们已经根据MIT开放源代码许可发布了针对各种语言(C / C ++,C#,Java,JavaScript)的Base4K实现,所有人采用。您可以在我们的新Github帐户中找到它 尽管我们没有计划完全开源Boxcryptor,但我们计划将来将代码的其他部分添加到Github。