설명된 대로 Expect에서 암호화하려고 합니다.이 위키에서우분투 16.04에서. 나는 설치했다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
실행할 수 없는 이유는 무엇입니까?
답변1
이 페이지에는 여러 솔루션이 나열되어 있으므로 수행하려는 작업에 따라 둘 중 하나를 사용하면 됩니다.
- 명령
des
코드des
는 TCL에서 제공되지 않으며 아마도tcllib
(오래되고, 나쁘고, 안전하지 않은) DES 또는 3DES 암호화에 사용되었던 고대의 코드일 것입니다. 해당 명령을 찾des
거나 호환되는 명령을 사용해야 합니다. tcllib
제공합니다des(n)
인터페이스는 있지만 링크한 페이지에는 문서화되어 있지 않은 것 같습니다. DES는 다시 매우 약하고 매우 오래되었습니다.tcllib
제공합니다md5crypt(n)
링크한 페이지에 언급된 인터페이스입니다.
해결하려는 문제가 무엇인지는 확실하지 않지만 PGP 또는 OR과 같은 bcrypt
것이 DES 또는 MD5 암호화 알고리즘보다 더 나은 선택일 수 있습니다. 고대 기술과 호환되려면 DES가 필요합니까? scrypt
이러한 비밀은 정확히 어떻게 사용됩니까?
답변2
에서 언급했듯이코멘트, 일반 텍스트 비밀번호를 엿보는 것을 피하려면 간단한 인코딩을 사용할 수 있습니다. 예를 들어, 여기 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
답변3
tcllib
Ubuntu 16.04 패키지의 파일 목록을 얻을 수 있습니다packages.ubuntu.com에서/usr/bin/des
, 실행하려는 파일이 포함되어 있지 않으며 공식 저장소의 다른 패키지도 포함되어 있지 않습니다. 내가 보는 유일한 옵션은소프트웨어 다운로드( tcllib
패키지를 지운 후) 아래 설명에 따라 직접 컴파일하십시오..tar.gz(또는 .tar.bz2) 파일을 설치하는 방법은 무엇입니까?