bashスクリプトでopensslランダムキーを使用する方法は?

bashスクリプトでopensslランダムキーを使用する方法は?

以下は私のサンプルコードです。

KEY_FILE=/tmp/key.txt
KEY=$(openssl rand 16)
echo $KEY > $KEY_FILE
ID=2345
source .mysqlCredentials.txt
MySqlCommand="mysql -h $IP -u $UserName -p$Password $DBName -e"
$MySqlCommand "INSERT INTO  some_table ( ID , ssl_key ) VALUES (\"$ID\", \"$KEY\") ;"

私が得るエラーは次のとおりです。

+ mysql -h X.X.X.X -u root -ppassword database -e 'INSERT INTO  some_table ( ID , ssl_key ) VALUES ("2345", "ïëC;+¹"ë'\''J£èMÑ") ;'
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ë'J£èMÑ")' at line 1

生成されたキーには、一重引用符、バックティック、二重引用符、スペースなどが表示されます。

このエラーをどのように克服できますか?

答え1

Rand文字列をBase64でエンコードしてみてはいかがでしょうか?こうして: openssl rand -base64 16 処理する方が簡単です。

関連情報