我们如何对您的数据进行加密?
这是我们的详细加密方法,仅使用业界公开算法,这意味这您可以脱离 LocalFileEncrypt.com 自行解密,您的加密数据永远由您完全掌握(前提是您记得密钥!)

加密过程分为三步:
- 记录元信息,这是为了记录原始文件类型及必要的加密操作元信息。
- 加密原始数据,使用 AES-256-GCM 算法对原始数据进行加密。
- 合并元信息及加密数据,将元信息和加密数据合并为一个文件。
1. 记录元信息
元信息是一个 JSON 对象,包含以下字段:
{
version: number;
type: "0" | "1" | "2";
ext?: string
}
它们的含义如下:
字段名 | 数据类型 | 是否可选 | 描述 |
---|---|---|---|
version | number | 否 | 执行加密的 LocalFileEncrypt.com 版本号,它是用于标识加密过程的版本,目前固定为 1 |
type | “0”、“1”、 “2” | 否 | 加密目标类型,“0” 表示加密文本;“1” 表示加密文件;“2” 表示加密文件夹 |
ext | string | 是 | 加密文件的扩展名,只有在 type 为 “1” 时才会存在 |
例如:加密 foo.txt 文件时,元信息是:
{
"version": 1,
"type": "1",
"ext": "txt"
}
2. 加密原始数据
加密原始数据过程与元信息中 version 字段有关,它决定了具体的加密流程。
version 为 1 时(当前版本)
- 读取原始文件二进制数据流作为原始数据。
- 使用 SHA-256 算法对密码生成 256 位哈希摘要作为 iv。
- 使用 PBKDF2 算法将密码转换为基础密钥,该密钥仅被用于派发密钥。
- 使用 PBKDF2 算法从基础密钥派发出 256 位加解密密钥,其中哈希算法为 SHA-256,迭代次数 100000 次,盐与密码相同。
- 使用 AES-GCM 算法对原始数据进行加密,其中 iv 为第 2 步生成的 256 位 iv,密钥为第 4 步生成的 256 位密钥。
3. 合并元信息及加密数据
合并使用以下步骤:
- 将 JSON 元信息转化为字符串形式。
- 创建二进制缓冲区。
- 缓冲区顺序写入 8 字节,内容为 ’l0kfd3e1’,表示这是一个 LocalFileEncrypt.com 加密文件,该值永远不变。
- 缓冲区顺序写入 4 字节,内容为元信息字符串长度,大端序。
- 缓冲区顺序写入元信息字符串内容。
- 缓冲区顺序追加全部加密数据
例如:加密文本,内容:123,密码:123,最终数据的十六进制表示为:
4. 脱离 LocalFileEncrypt.com 自行解密
正常情况下,您无需担心无法解密经 LocalFileEncrypt.com 加密的数据,我们依靠 Cloudflare 向全球提供高可用服务。
但您可能仍然希望在没有 LocalFileEncrypt.com 的情况下自行解密数据,确保自己对加密数据的完全控制,为此我们提供了一个 Python 示例程序,它根据前文描述的加密过程实现了数据解密功能,您可以通过下面的方式在本地解密数据:
python3 decrypt.py <file_path> <key>
*注意:该示例程序仅供参考,您可以根据自己的需求进行修改。执行前请确保安装了 Python 和 cryptography 。
5. 更新记录
- 2025/01/31:新增 version 为 1 时的加密流程
LocalFileEncrypt.com 仍在不断演进,未来可能会添加不同的加密算法、密钥来源,所有流程细节都将在此公开,确保 您的加密数据 在 掌握密钥的情况下,永远不会因为任何不可抗力而无法解密。
- 标签:
- 如何工作