openssl을 사용하여 비밀번호 해독

openssl을 사용하여 비밀번호 해독

더 이상 회사에서 일하지 않는 사람이 만든 오래된 쉘 스크립트가 있는데, 이 스크립트는 액세스 비밀번호를 암호화하고 해독합니다. 이전 스크립트는 기본적으로 다음과 같았습니다.

PFILE=/home/user/keys/pwfile
if [ ! -f $PFILE ] || [[ "$NEW_FILE" == "true" ]]; then
    rm -rf $PFILE
    echo "PASSWORD=notset" >> $PFILE
fi
if [ -n "$PASSWORD" ]; then
    echo "changing PASSWORD"
    P=`echo ${PASSWORD} | openssl enc -aes-128-cbc -a -salt -pass pass:${SECRET}`
    sed -i "/PASSWORD=/ s|=.*|=${P}|" ${PFILE}
fi

암호 해독 스크립트는 기본적으로 다음을 수행합니다.

PASSWORD=$(sed -n 's|^PASSWORD=||p' $PFILE)
password=`echo $PASSWORD | openssl enc -aes-128-cbc -a -d -salt -pass pass:${SECRET}`

하지만 이제 이것을 실행하면 오류가 발생합니다.

*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.

이 새 버전을 시험해 보기 위해 테스트 스크립트를 만들었는데 다음과 같습니다.

P=`echo 'rawpassword' | openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -pass pass:'secret'`    
echo "P = " $P    
U= `echo P | openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -d -salt -pass pass:'secret'`    
echo "U = " $U

암호화하는 것 같지만 빈 문자열을 인쇄하고 오류가 발생하기 때문에 암호 해독 프로세스 중에 문제가 발생했습니다.

error reading input file

암호 해독 중에 내가 뭘 잘못하고 있나요?

관련 정보