Expect
如何避免此錯誤“無法執行“des”:沒有這樣的文件或目錄”?
我正在嘗試在 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
命令不能執行?
正如評論中提到的,如果您只想避免對明文密碼進行翻牆,您可以使用簡單的編碼。例如,這是 Perl 中的一個
# Generate encoding echo secret123 | perl -e 'chomp($passwd=<>); chomp($encoded=pack("u",$passwd));print "$encoded\n"' )<V5C<F5T,3(S
這裡的編碼密碼
secret123
是)<V5C<F5T,3(S
.# Restore cleartext echo ')<V5C<F5T,3(S' | perl -e 'chomp($encoded=<>); chomp($passwd=unpack("u",$encoded)); print "$passwd\n"' secret123
該頁面列出了多個解決方案,因此您只需要使用其中一個或其他東西,具體取決於您要執行的操作。
- 命令程式碼依賴於
des
一些名為des
. 此命令不是 TCL 提供的,也不是tcllib
. 它可能是曾經用於(舊的、壞的、不安全的)DES 或 3DES 加密的東西。您將需要找到該des
命令或使用兼容的東西。tcllib
確實提供了一個des(n)
界面,但是您連結的頁面上似乎沒有記錄。再次,DES 非常弱且非常陳舊。tcllib
確實提供了md5crypt(n)
您連結的頁面上提到的界面。像 PGP 之類的東西,或者
bcrypt
或scrypt
可能是 DES 或 MD5 加密算法的更好選擇,儘管尚不清楚您要解決什麼問題……您是否需要 DES 才能與古老的東西兼容?這些秘密究竟是如何被使用的?