From 91a0d809e6cf4eebab4229e0e5fc6b49ff204117 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Fri, 30 Apr 2021 16:10:09 +0500 Subject: [PATCH] PASSWORD ENCRYPTION YOOOO --- README.md | 10 +++++----- readpass.sh | 8 +++++++- savepass.sh | 43 ++++++++++++++++++++++++++++++++++--------- 3 files changed, 46 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index f167ecc..0ae4390 100644 --- a/README.md +++ b/README.md @@ -4,21 +4,21 @@ BML CLI written in Bash. This project is currently under development and a lot o ![photo_2021-04-28_14-59-35](https://user-images.githubusercontent.com/18140039/116385581-5c948300-a832-11eb-899b-9133501a4ae7.jpg) ## Requirements -`curl` `jq` +`curl` `jq` `openssl` - Make sure all requirements are met before running script. - Termux users will need `ncurses-utils` additionally for terminal colors #### Arch Linux -`sudo pacman -S curl jq` +`sudo pacman -S curl jq openssl` #### Ubuntu -`sudo apt install curl jq` +`sudo apt install curl jq openssl` #### Fedora -`sudo dnf install curl jq` +`sudo dnf install curl jq openssl` ### Termux -`pkg install curl jq ncurses-utils` +`pkg install curl jq openssl ncurses-utils` ## Installation ``` diff --git a/readpass.sh b/readpass.sh index 3a520e0..b5eb7ac 100644 --- a/readpass.sh +++ b/readpass.sh @@ -1,7 +1,10 @@ if [ -f $CREDENTIALS ] then source $CREDENTIALS - echo "Attempting to login with saved credentials" +# echo "Attempting to login with saved credentials" + read -s -p 'Enter Pin: ' PIN + BML_USERNAME=$(echo ${BML_USERNAME} |openssl enc -d -des3 -base64 -pass pass:${PIN} -pbkdf2) + BML_PASSWORD=$(echo ${BML_PASSWORD} |openssl enc -d -des3 -base64 -pass pass:${PIN} -pbkdf2) if [ "$LOGIN" = "2" ] then echo "${red}Login Required${reset}" @@ -12,6 +15,9 @@ then else : fi + + + elif [ ! -f $CREDENTIALS ] then echo "${red}Login Required${reset}" diff --git a/savepass.sh b/savepass.sh index b5bfbfc..5fb60e9 100644 --- a/savepass.sh +++ b/savepass.sh @@ -1,5 +1,3 @@ -#echo "Do ${red}NOT${reset} save password if password contain '|' '^' '$' '&' ';' ':' '(' ')' " - if [ ! -f $CREDENTIALS ] then if [ "$LOGIN" = "0" ] @@ -7,15 +5,42 @@ then read -p 'Do you want to save login? [y/N] ' SAVE_LOGIN if [ "$SAVE_LOGIN" = "Y" ] then - echo "Username and Password is saved in ${lightred}PAIN TEXT${reset} in $CREDENTIALS" - echo "BML_USERNAME='${BML_USERNAME}'" > $CREDENTIALS - echo "BML_PASSWORD='${BML_PASSWORD}'" >> $CREDENTIALS + read -s -p 'Enter Pin: ' PIN + echo "" + read -s -p 'Repeat Pin: ' REPEAT_PIN + if [ "$PIN" = "$REPEAT_PIN" ] + then + echo "" + echo "Your credentials are ${lightgreen}encrypted${reset} and saved in $CREDENTIALS" + BML_USERNAME=$(echo "${BML_USERNAME}" | openssl enc -e -des3 -base64 -pass pass:${PIN} -pbkdf2) + BML_PASSWORD=$(echo "${BML_PASSWORD}" | openssl enc -e -des3 -base64 -pass pass:${PIN} -pbkdf2) + echo "BML_USERNAME='${BML_USERNAME}'" > $CREDENTIALS + echo "BML_PASSWORD='${BML_PASSWORD}'" >> $CREDENTIALS + else + echo "" + echo "${red}Pin do not match${reset}" + source savepass.sh + fi elif [ "$SAVE_LOGIN" = "y" ] - then - echo "Username and Password is saved in ${lightred}PAIN TEXT${reset} in $CREDENTIALS" - echo "BML_USERNAME='${BML_USERNAME}'" > $CREDENTIALS - echo "BML_PASSWORD='${BML_PASSWORD}'" >> $CREDENTIALS + then + read -s -p 'Enter Pin: ' PIN + echo "" + read -s -p 'Repeat Pin: ' REPEAT_PIN + if [ "$PIN" = "$REPEAT_PIN" ] + then + echo "" + echo "Your credentials are ${lightgreen}encrypted${reset} and saved in $CREDENTIALS" + BML_USERNAME=$(echo "${BML_USERNAME}" | openssl enc -e -des3 -base64 -pass pass:${PIN} -pbkdf2) + BML_PASSWORD=$(echo "${BML_PASSWORD}" | openssl enc -e -des3 -base64 -pass pass:${PIN} -pbkdf2) + echo "BML_USERNAME='${BML_USERNAME}'" > $CREDENTIALS + echo "BML_PASSWORD='${BML_PASSWORD}'" >> $CREDENTIALS + + else + echo "" + echo "${red}Pin do not match${reset}" + source savepass.sh + fi else : fi