我正在尝试在 Ubuntu 16.04 上的本 wiki 中概述的Expect 中进行加密。我已经安装了tcllib
root@alarmux:/home/abdmin# apt-get install tcllib
Reading package lists... Done
Building dependency tree
Reading state information... Done
tcllib is already the newest version (1.17-dfsg-1).
0 upgraded, 0 newly installed, 0 to remove and 77 not upgraded.
但是,当我运行我的脚本时,我得到:
couldn't execute "des": no such file or directory
while executing
"exec echo "$pd" | des -e -k $key -b > /home/abdmin/$filename"
(procedure "utility_encrypt" line 3)
invoked from within
"utility_encrypt pswd encrypted_Pass"
(file "./tclTest" line 22)
为什么des
命令不能执行?
该页面列出了多个解决方案,因此您只需要使用其中一个或其他解决方案,具体取决于您要执行的操作。
des
一些名为des
. 此命令不是 TCL 提供的,也不是tcllib
. 它可能是曾经用于(旧的、坏的、不安全的)DES 或 3DES 加密的东西。您将需要找到该des
命令或使用兼容的东西。tcllib
确实提供了一个des(n)
界面,但是您链接的页面上似乎没有记录。再次,DES 非常弱且非常陈旧。tcllib
确实提供了md5crypt(n)
您链接的页面上提到的界面。PGP 之类的东西,或者
bcrypt
或scrypt
可能是 DES 或 MD5 加密算法的更好选择,尽管尚不清楚您要解决什么问题……您是否需要 DES 才能与古老的东西兼容?这些秘密究竟是如何被使用的?您可以在 packages.ubuntu.com 上
tcllib
获取 Ubuntu 16.04 软件包的文件列表,它不包含您尝试运行的文件——官方 repos 中的任何其他软件包也不包含。我看到的唯一选择是下载软件并(在清除软件包后)按照此处的说明自行编译:如何安装 .tar.gz(或 .tar.bz2)文件?/usr/bin/des
tcllib
正如评论中提到的,如果您只想避免对明文密码进行翻墙,您可以使用简单的编码。例如,这是 Perl 中的一个
这里的编码密码
secret123
是)<V5C<F5T,3(S
.