You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本中OpenSSL执行报错,请求协助排查解决

解决openssl enc报错"enc: Use -help for summary."的问题

你的脚本报错核心是openssl enc参数组合错误,加上echo默认添加换行符导致编码/解码异常,以下是具体修复步骤:

1. 修正Base64编码/解码的换行问题

echo默认会在输出末尾加换行符,这会让Base64编码/解码结果混入多余字符,破坏后续解密流程:

  • 生成salt的循环中,把echo "$var"改为echo -n "$var"(-n表示不添加换行):
    for i in {1..28}
    do
    var=$(echo -n "$var" | base64)
    done
    
  • 在decrypt函数中处理解密输入时,同样用echo -n避免多余换行:
    flag=$(echo -n "$MzSaas7k" | base64 -d | openssl enc -aes-128-cbc -d -salt -pass pass:"$salt")
    

2. 调整openssl enc的参数

你已经通过base64 -d完成了解码,传给openssl的是二进制数据,不需要再用-a参数(-a是用于告诉openssl输入/输出为Base64格式),直接去掉-a即可:
原错误命令:

flag=$(echo $MzSaas7k | base64 -d | openssl enc -aes-128-cbc -a -d -salt -pass pass:$salt)

修改后:

flag=$(echo -n "$MzSaas7k" | base64 -d | openssl enc -aes-128-cbc -d -salt -pass pass:"$salt")

3. 可选:添加错误检查

可以给openssl命令增加状态码检查,方便快速定位解密失败的具体原因:

flag=$(echo -n "$MzSaas7k" | base64 -d | openssl enc -aes-128-cbc -d -salt -pass pass:"$salt" 2>&1)
if [ $? -ne 0 ]; then
    echo "解密失败: $flag"
    exit 1
fi

完整修复后的脚本

#!/bin/bash

function decrypt {
    MzSaas7k=$(echo "$hash" | sed 's/988sn1/83unasa/g')
    Mzns7293sk=$(echo "$MzSaas7k" | sed 's/4d298d/9999/g')
    MzSaas7k=$(echo "$Mzns7293sk" | sed 's/3i8dqos82/873h4d/g')
    Mzns7293sk=$(echo "$MzSaas7k" | sed 's/4n9Ls/20X/g')
    MzSaas7k=$(echo "$Mzns7293sk" | sed 's/912oijs01/i7gg/g')
    Mzns7293sk=$(echo "$MzSaas7k" | sed 's/k32jx0aa/n391s/g')
    MzSaas7k=$(echo "$Mzns7293sk" | sed 's/nI72n/YzF1/g')
    Mzns7293sk=$(echo "$MzSaas7k" | sed 's/82ns71n/2d49/g')
    MzSaas7k=$(echo "$Mzns7293sk" | sed 's/JGcms1a/zIm12/g')
    Mzns7293sk=$(echo "$MzSaas7k" | sed 's/MS9/4SIs/g')
    MzSaas7k=$(echo "$Mzns7293sk" | sed 's/Ymxj00Ims/Uso18/g')
    Mzns7293sk=$(echo "$MzSaas7k" | sed 's/sSi8Lm/Mit/g')
    MzSaas7k=$(echo "$Mzns7293sk" | sed 's/9su2n/43n92ka/g')
    Mzns7293sk=$(echo "$MzSaas7k" | sed 's/ggf3iunds/dn3i8/g')
    MzSaas7k=$(echo "$Mzns7293sk" | sed 's/uBz/TT0K/g')

    flag=$(echo -n "$MzSaas7k" | base64 -d | openssl enc -aes-128-cbc -d -salt -pass pass:"$salt")
    if [ $? -ne 0 ]; then
        echo "解密失败: $flag"
        exit 1
    fi
}


var="9M"
salt=""
hash="VTJGc2RHVmtYMTl2ZnYyNTdUeERVRnBtQWVGNmFWWVUySG1wTXNmRi9rQT0K"


for i in {1..28}
do
var=$(echo -n "$var" | base64)
done

salt="$var"

if [[ ! -z "$salt" ]]
then
    decrypt
    echo "$flag"
else
    exit 1
fi

内容的提问来源于stack exchange,提问作者n00bdev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:23:08