使用对称密码重命名文件

使用对称密码重命名文件

我想用一个简单的对称密码批量混淆文件名(而不是文件内容)。这样我就可以稍后重命名它们。例如,使用在线 blowfish 加密http://sladex.org/blowfish.js/使用密钥“hello”、ECB 密码模式和十六进制输出格式,文件将重命名如下

"file001.dat" -> "76d35b129cf450413745c5da58473475"
"file002.dat" -> "74dcf32b30bed1e53745c5da58473475"
"file003.dat" -> "a387a582c6431b423745c5da58473475"

我并不要求强密码,只是要求文件能够轻松地重新命名。

这可以通过 Mac 上的命令行完成吗?

答案1

您可以同时使用opensslxxd来实现此目的。

要加密文件名:

% ls
file001.dat file002.dat file003.dat
% for f in *.dat; do; mv $f $(echo $f | openssl blowfish -salt -pass pass:somepassword | xxd -ps -c 200); done
% ls
53616c7465645f5f027d297a5dffe2a6dce4ae35392bfbe8c78acbfa8985081b    53616c7465645f5fff47f252c9403c6f31a23e5fd26578a8d36e24651735dae9
53616c7465645f5f90c1b56fed45fb9b3beb431c4984be0852d6b047c2a564ca

解密:

% for f in 53*; do; mv $f $(echo $f | xxd -ps -r | openssl blowfish -d -salt -pass pass:somepassword); done
% ls
file001.dat file002.dat file003.dat

可能我还没有解决细节问题,但要点就在那里。如果您的目录只包含这些文件,您可以跳过 , 的奇怪猜测53*,只需使用*

顺便说一下,我正在使用zsh。不确定语法是否可以转换为bash,但我认为应该可以……

相关内容