看了今天的乱弹,心乱如麻。因为一些视频文件跟家里反目,实在得不偿失。故总结多年心得,于此分享,与诸君共勉!
特点
- 不知规则就无法打开,只能暴破;
- 秘钥存放在文件名中,一包一密;
- 文件播放不需要解压和输入密码,直接播放;
- 无惧网盘审查,直接分享。
步骤
- 修改文件名为随机文件名
- 加密打包,文件名作为密钥,一包一密
- 生成播放批处理文件,根据规则计算密钥并解压到播放器
代码
打包
#!/bin/bash
# 批量加密压缩文件
# srckey=$(echo 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/=| fold -w1 |shuf|tr -d '\n')
# deckey=$(echo 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/=| fold -w1 |shuf|tr -d '\n')
# echo $srckey
# echo $deckey
if [ -d "$1" ]; then
for f in $1*.mmc
do
# echo $f
filename=$(echo $f|md5sum -t|cut -c1-32)
# psd=$(echo $filename|base64|tr $srckey $deckey)
pwd=$(echo $filename|cut -c8-20)
mv "$f" "$1$filename.mmc"
7z a $1$filename.mmz $1$filename.mmc -p$pwd -mx0 -sdel
done
else
echo 'arg is not a directory!'
fi
批处理
REM 使用7zip解压并播放加密的文件包
@echo off
set fp=%1
set fn=%~n1
"7z.exe" e -so -p%fn:~7,13% %fp% |mplayer.exe -fs -
后记
本来,是打算用base64转换文件名,然后再用tr进行简单的交换加密获得密码的,但无奈批处理做这个工作稍显麻烦,没有现成的工具,所以现在只是简单的用了文件名的一部分作为密码。抛砖引玉,期待高人来解决。