如何可逆(对称)加密的文件名(有或无 目录路径,我没事W /任),这样的结果也是 有效的文件名(少超过64个字符[或任何限制],没有 有趣的人物,理想情况下没有空格[但不是要求]等)?可逆加密的文件名,这样的结果是有效的文件名
谷歌搜索仅找到的文件名的加密算法,其中结果是 的二进制字符的长字符串(使用MIME64,转换为 非二进制是容易的,但是这只是使文件名更长)和/或 非对称一个(例如盐腌的MD5,SHA1,DES, 等)。我不想存储哈希表:我想用我记忆的简单密钥来解密 文件名。
我自己尝试使用诸如“mcrypt -b”之类的东西也失败了:产生的 输出(甚至在转换为ASCII之前)非常迅速地增长,因为文件名和密钥长度增加了 。推荐:我打算使用“无限备份”服务(如mozy,blazebackup等),但没有加密文件名(仅文件 内容)。我将创建一个由加密文件名 组成的目录,其中包含符号链接(甚至是硬链接)。我将仅备份该目录(并选择我自己的私钥) ,并且有 文件名加密和文件内容加密备份。
编辑:皮蒂的方法工作就像一个魅力!
# "-b 512" yields "Bits has bad value 512 (too small)"
ssh-keygen -t rsa -b 768 -f /tmp/test.rsa
echo "thisisareallylongfilenameknightswhosayniioratleastusedto" |\
openssl rsautl -inkey /tmp/test.rsa -encrypt | base64 |\
perl -0777 -pnle 's/\//-/isg;s/\n//isg'
产生一个130个字符的结果,应该总是一个文件名!
等一下,我只是用我的私钥加密,这样任何人瓦特/我的公钥可以看了吗? – barrycarter
这正是[格式保留加密](https://secure.wikimedia.org/wikipedia/en/wiki/Format_Preserving_Encryption)的工作。 –
这听起来很有趣。是否有任何这些方法的开源Linux实现? – barrycarter