Bash 期望解密密码
Bash Expect decrypt password
我在本地系统上保存的名为 phrase 的文件中有密码:OXyqRC694pvKQ1FNfIYZQOKS
加密我的密码:
回声 "ITSMYPASSWORD" | openssl enc -aes-128-cbc -a -salt -pass pass:OXyqRC694pvKQ1FNfIYZQOKS
在 expect 脚本中,我试图在执行 scp 之前解密密码,但在解密密码时出现错误 "bad decrypt"
#!/usr/bin/expect
set upassword [lindex $argv 0]
set oF [open "phrase" r]
set dpassword [read $oF]
puts $upassword
puts $dpassword
puts "echo $upassword | openssl enc -aes-128-cbc -a -d -salt -pass pass:$dpassword"
#if i execute ouput of above line in shell, i am able to decrypt the password,
# but below exec command doesnot not work.
exec echo $upassword | openssl enc -aes-128-cbc -a -d -salt -pass pass:$dpassword
我该如何解决这个问题?
在 Tcl 中,read
command 将包含结束文件的换行符。试试这个:
set dpassword [read -nonewline $oF]
此外,exec
command 有一个 <<
重定向,用于将字符串发送到命令的标准输入:
exec openssl enc -aes-128-cbc -a -d -salt -pass pass:$dpassword << $upassword
我在本地系统上保存的名为 phrase 的文件中有密码:OXyqRC694pvKQ1FNfIYZQOKS
加密我的密码: 回声 "ITSMYPASSWORD" | openssl enc -aes-128-cbc -a -salt -pass pass:OXyqRC694pvKQ1FNfIYZQOKS
在 expect 脚本中,我试图在执行 scp 之前解密密码,但在解密密码时出现错误 "bad decrypt"
#!/usr/bin/expect
set upassword [lindex $argv 0]
set oF [open "phrase" r]
set dpassword [read $oF]
puts $upassword
puts $dpassword
puts "echo $upassword | openssl enc -aes-128-cbc -a -d -salt -pass pass:$dpassword"
#if i execute ouput of above line in shell, i am able to decrypt the password,
# but below exec command doesnot not work.
exec echo $upassword | openssl enc -aes-128-cbc -a -d -salt -pass pass:$dpassword
我该如何解决这个问题?
在 Tcl 中,read
command 将包含结束文件的换行符。试试这个:
set dpassword [read -nonewline $oF]
此外,exec
command 有一个 <<
重定向,用于将字符串发送到命令的标准输入:
exec openssl enc -aes-128-cbc -a -d -salt -pass pass:$dpassword << $upassword