文件加密后体积膨胀

2022-12-05 00:13:25 +08:00
 jeesk

无论是使用 aes 还是 ras 加密后体积都非常大的,但是我发现谷歌文件极客的安全文件夹也是加密的, 文件可以在根目录的 gfile 找到, 但是 mp4 文件加密后是不能播放的? 这种加密技术使用的是什么原理? 我在 V2EX 上面看到有人说在文件头和尾巴加点字节就可以了,我想问一下的是, 这种会不会被文件分析。

2724 次点击
所在节点    程序员
21 条回复
jeesk
2022-12-05 00:16:20 +08:00
最近在做自己的相册,所以打算做点私密空间的功能,很多东西向调研清楚一点。
815979670
2022-12-05 00:17:14 +08:00
有一种方式 其实可以尝试 就是 base64 然后自定义编码库 也算是一种加密了
edis0n0
2022-12-05 00:19:07 +08:00
我记得可以生成一个长密钥,然后非对称加密这个长密钥,实际文件内容用长密钥对称加密,这样体积就不会变大很多了
jeesk
2022-12-05 00:27:39 +08:00
@815979670 base64 感觉体积太大了,如果用户发现 10g 的视频被我移动到安全文件夹后,体积增加 1/3, 用户肯定会反感的。
jeesk
2022-12-05 00:30:37 +08:00
@edis0n0 您说的大概是 rc4 这种加密方案? 密文和原文一致 ?
edis0n0
2022-12-05 00:32:12 +08:00
@jeesk #5 不是,我记得 TLS 就是我说的这种方式设计的,太久没研究这块忘记了
xy90321
2022-12-05 00:36:40 +08:00
只是加密文件头那分分钟被人爆出💩来…
其实如果私人的话最简单的是 zip 加密… 算法 rc4 或者 aes 都可以
你要做的只是确保用户输入主密码后你能补起到足够长以防爆破就可以
eason1874
2022-12-05 01:41:06 +08:00
AES 是等长加密,并不会导致体积膨胀,最多相差一个块的长度,也就是不超过 16 字节,再加上 16 字节的 IV ,总共不到 32 字节。如果分段加密,也就每段增加不到 32 字节

估计你把 base64 当密文本身了( base64 编码后体积膨胀大概三分之一),原始密文是 latin1 (平时说的二进制、乱码),你存 latin1 就行
shiji
2022-12-05 01:55:41 +08:00
加密文件大小不会变大。 你肯定是代码写错了
geelaw
2022-12-05 01:59:50 +08:00
只要求 CCA 安全性的时候公钥加密的码率是 1 ,而且普遍通行的加密算法都是这样做的。
SlipStupig
2022-12-05 03:50:47 +08:00
自己设计一个一个文件格式,加密后压缩,用自己的解码器来解码
dingwen07
2022-12-05 04:23:31 +08:00
AES 加密并不会导致文件体积变大很多啊
cppc
2022-12-05 09:42:27 +08:00
对称加密,如果输入和加密算法的块大小对齐,不会增加体积,没有对齐,则会 padding 。增加的体积都是按字节算的,不会很大。
newmlp
2022-12-05 09:47:12 +08:00
aes 并不会导致加密后内容变大很多,顶多增加一个 16 字节对齐
lisxour
2022-12-05 10:05:31 +08:00
1. 加密后看到很多,你不会看的是加密后的 base64 吧,二进制形式不会加很多的。
2. 修改文件头文件尾的方式其实不太安全,如果双击打开确实基本是打不开的,但用分析工具比如 trid ,还是很容易识别的,除非你把这种类型的文件的结构都破坏掉,只破坏文件头通常是不够安全的。
leavic
2022-12-05 10:26:37 +08:00
padding 可能会引入一些数据吧,但应该不会很大。
xtinput
2022-12-05 10:33:35 +08:00
自己设计一个加密方案,比如每多少字节反转一下,0 到 x-1 保持不变,x 到 2x-1 0 、1 反转
KouShuiYu
2022-12-05 11:47:16 +08:00
你可以试试 aes-256-cbc https://www.npmjs.com/package/@ckvv/mimi 文件大小变化不大
jeesk
2022-12-05 17:52:57 +08:00
@xy90321 哈哈。ok , 明白。


@eason1874 @shiji
@dingwen07 @cppc

是我搞错了,我把密文和二进制搞混了
jeesk
2022-12-05 17:53:30 +08:00
@lisxour 是的, 如果只是破坏文件头还不如不加密。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/900074

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX