このエラーは、OpenSSLがIVに対して見ている値に、16進数以外の文字(つまり、abcdefABCDEF以外の文字)が含まれていることを意味します。
AES128キーは128/8 = 16
バイトですので、キーには32文字が必要です。 IVはAESブロックサイズに対応する16バイトで、OpenSSLは1つの "0"を16バイトに変換します。これは良いコマンドの例です:
$ echo -n "hello" > in
$ openssl aes-128-cbc -e -in in -out out -p -nosalt \
-K 000102030405060708090a0b0c0d0e0f -iv 000102030405060708090a0b0c0d0e0f
$ cat out | hexdump -e '16/1 "%02x"'
8326dc340c564d49790650a59260fea0
は今非進文字とIVの最後の文字を置き換え、そしてあなたが取得している同じエラーを取得していることがわかります。
$ openssl aes-128-cbc -e -in in -out out -p -nosalt \
-K 000102030405060708090a0b0c0d0e0f -iv 000102030405060708090a0b0c0d0e0q
$ cat out | hexdump -e '16/1 "%02x"'
non-hex digit
invalid hex iv value
貼り付けたものが実行中の実際のコードである場合、問題は明らかです。まず、-K ${he-iv ${hexIV}
はどういう意味ですか?第二に、引数-K
が鍵を与えることです。あなたはIVを与えるために-iv
が欠けています。閉じ括弧もありません。最後のヒントとして
openssl aes-128-cbc -e -in logo-1.ts -out logo-enc-1.ts -p -nosalt -K $hexKey -iv $hexIV
、あなたbashを使用している場合は、bashの引数として-x
を使用してスクリプトを実行し、それがすべての出力を行います。
これはおそらくstatic.key
を想定して、あなたの問題を解決しますが、16バイトを持っていますこれはbashシェルのキー値を格納する過程で
$ /bin/bash -x my_script
+ hexKey=0
+ hexIV=0
+ openssl aes-128-cbc -e -in in -out out -p -nosalt -K 0 -iv 0
感謝することができ願っています!!!!! –