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 처리하기가 더 쉽습니다.

관련 정보