【问题标题】:Bash Expect decrypt passwordBash期望解密密码
【发布时间】:2020-03-08 13:59:02
【问题描述】:
  1. 我在名为短语的文件中有密码短语,它保存在本地系统上:OXyqRC694pvKQ1FNfIYZQOKS

  2. 加密了我的密码: 回声“ITSMYPASSWORD” | openssl enc -aes-128-cbc -a -salt -pass pass:OXyqRC694pvKQ1FNfIYZQOKS

  3. 在期望脚本中,我尝试在执行 scp 之前解密密码,但在解密密码时出现错误“解密错误”

    #!/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

我该如何解决这个问题?

【问题讨论】:

    标签: openssl expect


    【解决方案1】:

    在 Tcl 中,read command 将包含结束文件的换行符。试试这个:

    set dpassword [read -nonewline $oF]
    

    另外,exec command 有一个<< 重定向,可以将字符串发送到命令的标准输入:

    exec openssl enc -aes-128-cbc -a -d -salt -pass pass:$dpassword << $upassword
    

    【讨论】:

    • 成功了...我早些时候尝试使用带有 echo 的 sed 删除换行符,但是没有用...谢谢
    猜你喜欢
    • 2016-01-22
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 2015-11-28
    • 2018-07-05
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    相关资源
    最近更新 更多