cryptomator / 重要文件加密存储

首先说结论:

        推荐使用Cryptomator进行文件加密后存储云盘,PC端+android端,均为开源软件,不过android端需要进行自行修改和打包 或 付费后使用。以下为个人修改和打包的经验。

写在前面

        云存储越来越普及,很多东西都喜欢往云盘上面丢,但是有些重要的文件却实在不敢放,虽然互联网没有秘密,也不能说个人信息或者重要信息随意泄露;各大网络平台都宣称安全,但是从滴滴买卖个人数据后,这种宣称的可信度实在不高,且安全性也很难去验证,要想保障重要文件的隐私性和安全性,那么就只能本地存储,或本地加密存储,却也少了一份随时取用的便利性。如身份证、户口本、居住证、驾驶证等常用证件的扫描件或照片,大件物品的发票,亦或是包含敏感信息的重要文件。

        这里强烈安利两款加密软件,Veracypt和Cryptomator;可以对文件加密后再丢到云盘,既享受云盘存储带来的便利,又保障个人文件的安全性。

重要文件存储方案

1. 本地存储或本地加密存储;(包括存储在U盘等移动设备)

2. 通过加密软件对文件加密后存储在云盘;

3. 通过加密管理软件建立保险箱,将重要文件放入保险箱后存储在云盘

经过尝试以上各种方案,对比发现:

  1. 本地存储获取文件不便利,需要随身携带U盘,U盘的丢失也会导致文件丢失;
  2. 加密后存云盘:主要针对单个文件加密,加解密不方便,且每个文件重复加解密,操作繁琐;
  3. 加密管理软件(如Veracrypt, Cryptomator)加密后存云盘:可以维护一个保险箱,对保险箱里的文件进行整体热加解密处理,操作方便,个人强烈安利的方式;

Veracrypt

Cryptomator

        Veracrypt和Cryptomator均为开源软件,不过Veracrypt仅提供PC客户端,用手机无法获取文件,需要手边有电脑,限制了一定的使用场景;Cryptomator提供了全终端,且vault保险箱支持按需扩展,无需一开始就定好保险箱的容量大小,比Veracrypt的使用场景会更广,更方便手机上支持查看获取重要文件;(使用场景如:实名认证时获取身份证扫描件上传,直接手机操作)

        可惜Cryptomator虽然是开源软件,但是他的移动终端是要付费的,不过github上有他的源代码,可以自行进行fork后修改代码,打包可用app。

制作免费android版Cryptomator

Synopsis

目标:

  1. 打包Cryptomator安卓版本,免费使用
  2. 自行修改,避免病毒植入

直接干货:

  1. fork代码
  2. 下载材料(代码,依赖)
  3. 修改代码,移除会员认证(超简单)
  4. 打包
  5. done,食用

一、fork代码

仓库地址:https://github.com/cryptomator/android

二、下载材料

下载依赖

git:Git

        git用于下载代码到本地(如果有其他工具附带git,可以省去)

jdk17:Java Archive Downloads - Java SE 17.0.12 and earlier

gradle:https://github.com/gradle/gradle/releases/latest

        jdk17和gradle是后续打包需要用到的工具和依赖,记得修改环境变量;(详细流程可以度娘,有很多)

下载代码

通过git clone 自己仓库的代码方便修改

git clone https://github.com/sinmite/cryptomator-android.git

# 切换到指定发布版本
cd ./cryptomator-android/ & git checkout 1.11.1

三、修改代码

 修改代码文件domain/src/main/java/org/cryptomator/domain/usecases/DoLicenseCheck.java

找到func LicenseCheck,替换为以下代码

public LicenseCheck execute() throws BackendException {
	return new LicenseCheck() {
	    public String mail() {
	        return "";
	    }
	};
}

到这里就改完了,剩下的就是打包成apk

四、打包

apk打包流程,感兴趣可以去搜一下完整的教程,这里是简洁版,仅针对本次打包;具体流程如下:

  1. 生成apk文件
  2. 签名
生成apk文件

进入源码/buildsysmtem/目录

cd buildsystem

docker build -t cryptomator-android .

docker run --rm -u $(id -u):$(id -g) -v $(pwd):/project -w /project cryptomator-android ./gradlew clean assembleLiteRelease

# 切换到根目录
cd ..

# 查看生成的apk地址
find . -name '*.apk'
签名

需要生成一个jks文件进行签名,2种方式,通过android studio进行页面可视化操作,或者通过命令行工具keytool生成,两种方式均可,拿到我们想要的.jks文件

通过android studio

点击build - generate signed app bundle or apk

点击create new,自由填写相关内容完成签名文件生成,写啥都成,反正是自用

通过keytool生成

前提是安装keytool工具,debian系可以通过apt install keytool进行安装;

# keytool -genkeypair -v -keystore path/to/file.keystore -alias key_name -keyalg RSA -keysize 2048 -validity 10000


>>> keytool -genkeypair -v -keystore ./sinmite.jks -alias sinmite -keyalg RSA -keysize 2048 -validity 10000
--
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  sinmite
What is the name of your organizational unit?
  [Unknown]:  abman
What is the name of your organization?
  [Unknown]:  abman
What is the name of your City or Locality?
  [Unknown]:  JN
What is the name of your State or Province?
  [Unknown]:  SDQ
What is the two-letter country code for this unit?
  [Unknown]:  CN
Is CN=sinmite, OU=abman, O=abman, L=JN, ST=SDQ, C=CN correct?
  [no]:  yes

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
        for: CN=sinmite, OU=abman, O=abman, L=JN, ST=SDQ, C=CN
[Storing ./sinmite.jks]


# 查看生成的key信息
>>> keytool -list -keystore sinmite.jks
--
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 1 entry

sinmite, Apr 3, 2025, PrivateKeyEntry,
Certificate fingerprint (SHA-256): 4D:82:xxxxxxxxxxxxxxxxxxxxx:AE:DB:02:8F:5E:F8:B3:54:32:0A:6B:C6:CB:71:83:64:D0:60:8E
完成签名

通过上一步(任意方式均可)生成的jks文件,对之前生成的apk进行签名;

也是两种方式,通过工具toolkit进行傻瓜式操作,或者通过命令行工具apksigner

可视化工具toolkit

命令行工具apksigner

# install apksigner
>>> sudo apt install google-android-build-tools-34.0.0-installer

# sign
>>> apksigner sign --ks release.jks presentation-lite-release-unsigned.apk
--
Keystore password for signer #1:

# verify
>>> apksigner verify --print-certs cryptomator-signed.apk
--
Signer #1 certificate DN: C=86, ST=SDQ, L=JN, O=abman, OU=abman, CN=sinmite
Signer #1 certificate SHA-256 digest: cc6f928677bb3f0c4ea6855cef1374e9a6025xxxxxxxxxx884d3f8587f3d032
Signer #1 certificate SHA-1 digest: d4c1f4770cxxxxxxxxx4737db35d60d06e7389
Signer #1 certificate MD5 digest: d1f78346820dxxxxxxxxxx8340e7551d

五、done

将签名后的apk文件发送或复制到安卓手机进行安装,便可以开始享用了;

同样,示例中用到的工具toolkit以及本次生成的最终apk均会放到资源中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值