首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openssl未知选项错误

openssl未知选项错误
EN

Stack Overflow用户
提问于 2014-08-20 08:59:19
回答 2查看 10.2K关注 0票数 2

我在下面运行这个脚本:

代码语言:javascript
复制
#!/bin/bash

keyFile=video.key
openssl rand 16 > $keyFile
encryptionKey=$(cat $keyFile | hexdump -e '16/1 "%02x"')

splitFilePrefix=stream
encryptedSplitFilePrefix=enc/${splitFilePrefix}

numberOfTsFiles=$(ls ${splitFilePrefix}*.ts | wc -l)

for (( i=1; i<$numberOfTsFiles; i++ ))
 do
 initializationVector=printf '%032x' $i
 openssl aes-128-cbc -e -in ${splitFilePrefix}$i.ts -out ${encryptedSplitFilePrefix}$i.ts -nosalt -iv $initializationVector -K $encryptionKey
 done

在执行之后,bash给出了一个错误:

代码语言:javascript
复制
./script.sh: line 14: fg: no job control
unknown option '9d268d620c68938b4578c3f299c91a1a'
options are
-in <file>     input file
-out <file>    output file
-pass <arg>    pass phrase source
-e             encrypt
-d             decrypt
-a/-base64     base64 encode/decode, depending on encryption flag
-k             passphrase is the next argument
-kfile         passphrase is the first line of the file argument
-md            the next argument is the md to use to create a key
                 from a passphrase.  One of md2, md5, sha or sha1
-S             salt in hex is the next argument
-K/-iv         key/iv in hex is the next argument
-[pP]          print the iv/key (then exit if -P)
-bufsize <n>   buffer size
-nopad         disable standard block padding
-engine e      use engine e, possibly a hardware device.
Cipher Types
-aes-128-cbc               -aes-128-cbc-hmac-sha1     -aes-128-cfb
-aes-128-cfb1              -aes-128-cfb8              -aes-128-ctr
-aes-128-ecb               -aes-128-gcm               -aes-128-ofb
-aes-128-xts               -aes-192-cbc               -aes-192-cfb
-aes-192-cfb1              -aes-192-cfb8              -aes-192-ctr
-aes-192-ecb               -aes-192-gcm               -aes-192-ofb
-aes-256-cbc               -aes-256-cbc-hmac-sha1     -aes-256-cfb
-aes-256-cfb1              -aes-256-cfb8              -aes-256-ctr
-aes-256-ecb               -aes-256-gcm               -aes-256-ofb
-aes-256-xts               -aes128                    -aes192
-aes256                    -bf                        -bf-cbc
-bf-cfb                    -bf-ecb                    -bf-ofb
-blowfish                  -camellia-128-cbc          -camellia-128-cfb
-camellia-128-cfb1         -camellia-128-cfb8         -camellia-128-ecb
-camellia-128-ofb          -camellia-192-cbc          -camellia-192-cfb
-camellia-192-cfb1         -camellia-192-cfb8         -camellia-192-ecb
-camellia-192-ofb          -camellia-256-cbc          -camellia-256-cfb
-camellia-256-cfb1         -camellia-256-cfb8         -camellia-256-ecb
-camellia-256-ofb          -camellia128               -camellia192
-camellia256               -cast                      -cast-cbc
-cast5-cbc                 -cast5-cfb                 -cast5-ecb
-cast5-ofb                 -des                       -des-cbc
-des-cfb                   -des-cfb1                  -des-cfb8
-des-ecb                   -des-ede                   -des-ede-cbc
-des-ede-cfb               -des-ede-ofb               -des-ede3
-des-ede3-cbc              -des-ede3-cfb              -des-ede3-cfb1
-des-ede3-cfb8             -des-ede3-ofb              -des-ofb
-des3                      -desx                      -desx-cbc
-id-aes128-GCM             -id-aes192-GCM             -id-aes256-GCM
-rc2                       -rc2-40-cbc                -rc2-64-cbc
-rc2-cbc                   -rc2-cfb                   -rc2-ecb
-rc2-ofb                   -rc4                       -rc4-40
-rc4-hmac-md5              -seed                      -seed-cbc
-seed-cfb                  -seed-ecb                  -seed-ofb

我阅读了openssl手册,认为-K或-iv部件都是错误的,但却找不出哪种选择和错误的原因

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-20 10:34:11

你的问题是这句话:

代码语言:javascript
复制
initializationVector=printf '%032x' $i

应该是这样的:

代码语言:javascript
复制
initializationVector=$(printf '%032x' $i)

它使initializationVector空了。

如果在顶部添加set -x,然后准确地查看要运行的命令行是什么,您就可以找到它。

在修复之前,它如下所示:

代码语言:javascript
复制
openssl aes-128-cbc -e -in stream1.ts -out enc/stream1.ts -nosalt -iv -K 7aeb2faae0289b9828b2994f50a4cc3a

这使得openssl命令认为-K-iv选项的,而键本身是另一个命令选项。

因此出现了错误:unknown option '7aeb2faae0289b9828b2994f50a4cc3a' (在我的例子中)。

票数 1
EN

Stack Overflow用户

发布于 2014-08-20 10:32:18

代码语言:javascript
复制
do
  initializationVector=printf '%032x' $i
  openssl aes-128-cbc -e -in ${splitFilePrefix}$i.ts -out ${encryptedSplitFilePrefix}$i.ts \
      -nosalt -iv $initializationVector -K $encryptionKey
 done

你错过了密码上的领先破折号。试一试-aes-128-cbc。来自enc(1)文档:

代码语言:javascript
复制
SYNOPSIS

openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A]
[-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md] [-p]
[-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id] 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25400645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档