12345678910111213141516171819202122232425262728293031 |
- #!/usr/bin/env bash
- set -euo pipefail
- _encode() {
- # - Print the input to stdout
- # - Remove the first two characters
- # - Convert from hex to binary
- # - Convert from binary to base64
- # - Remove newlines from `base64` output
- echo -n "$1" | cut -c 3- | xxd -r -p | base64 | tr -d \\n
- }
- encode() {
- # - Convert from base64 to hex
- # - Remove newlines from `xxd` output
- _encode "$1" | xxd -p | tr -d \\n
- }
- encodeURL() {
- # - Remove padding from `base64` output
- # - Replace `+` with `-`
- # - Replace `/` with `_`
- # - Convert from base64 to hex
- # - Remove newlines from `xxd` output
- _encode "$1" | sed 's/=//g' | sed 's/+/-/g' | sed 's/\//_/g' | xxd -p | tr -d \\n
- }
- # $1: function name
- # $2: input
- $1 $2
|