Skip to content

Instantly share code, notes, and snippets.

@alvis
Created October 17, 2019 09:45
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alvis/89007e96f7958f2686036d4276d28e47 to your computer and use it in GitHub Desktop.
Save alvis/89007e96f7958f2686036d4276d28e47 to your computer and use it in GitHub Desktop.
bash: base64url encode and decode
# base64url encode
function base64url_encode {
(if [ -z "$1" ]; then cat -; else echo -n "$1"; fi) |
openssl base64 -e -A |
sed s/\\+/-/g |
sed s/\\//_/g |
sed -E s/=+$//
}
# base64url decode
function base64url_decode {
INPUT=$(if [ -z "$1" ]; then echo -n $(cat -); else echo -n "$1"; fi)
MOD=$(($(echo -n "$INPUT" | wc -c) % 4))
PADDING=$(if [ $MOD -eq 2 ]; then echo -n '=='; elif [ $MOD -eq 3 ]; then echo -n '=' ; fi)
echo -n "$INPUT$PADDING" |
sed s/-/+/g |
sed s/_/\\//g |
openssl base64 -d -A
}
Copy link

ghost commented May 11, 2021

can you help me please
manilalramanujan@gmail.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment