I have the following bash script to insert blowfish automatically into config.inc.php for phpMyAdmin:
#!/bin/bash
randomBlowfishSecret=$(openssl rand -base64 32)
echo "BlowFish Value: ${randomBlowfishSecret}"
replace_pma_blowfish="\$cfg['blowfish_secret'] = '${randomBlowfishSecret}'; \/* YOU MUST FILL IN THIS FOR COOKIE AUTH! *\/"
sed -i "s/\$cfg\[.blowfish_secret.\]\s*=.*/${replace_pma_blowfish}/" /var/www/html/phpMyAdmin/config.inc.php
It works but if the blowfish key contains this character '/', I will get sed error like:
root@test:./test
BlowFish Value: omaRJZpTeWZPQU+dqDc7UlrXZnL6j8i0wSE/3kTnjLU=
sed: -e expression #1, char 99: unknown option to `s'
Is there a way to generate openssl 32 character and without this character '/' or maybe how do we allow certain set of characters in openssl like this set of character:
!#%+23456789:=?@ABCDEFGHJKLMNPRS
To prevent bug in script, I want to avoid using certain characters like '/' '$' and others. I know escaping the slash is working but I don't want to use this character because it's going to have bug with another codes and I don't want to change the other codes an example of this would be roundcube that won't accept character ':' and '@' and I think this character '/' would have problem with another codes as well. So I don't want openssl to generate this character '/'
Requirements:
- Allow some special characters like '[' ']' '?' and avoid some characters like '/' '$'
- Password length is 32