Files
general-scripts-and-system-…/customscripts/randomtoken
T
2025-08-19 16:29:09 -06:00

31 lines
942 B
Bash

#!/bin/bash
# usage: randomtoken [bytes] [mode]
# defaults: bytes=16, mode=hex
# modes: hex, sha256, sha512, md5, base64, raw
# handle args and defaults
if [ "$#" -ne 2 ]; then
bytes=16
mode=hex
else
bytes=$1
mode=$2
fi
# generate token
if [ "$mode" = "sha256" ]; then
dd if=/dev/urandom bs=1 count=$bytes status=none | sha256sum | awk '{print $1}'
elif [ "$mode" = "sha512" ]; then
dd if=/dev/urandom bs=1 count=$bytes status=none | sha512sum | awk '{print $1}'
elif [ "$mode" = "md5" ]; then
dd if=/dev/urandom bs=1 count=$bytes status=none | md5sum | awk '{print $1}'
elif [ "$mode" = "base64" ]; then
dd if=/dev/urandom bs=1 count=$bytes status=none | base64 | awk '{print $1}'
elif [ "$mode" = "raw" ]; then
dd if=/dev/urandom bs=1 count=$bytes status=none
elif [ "$mode" = "hex" ]; then
dd if=/dev/urandom bs=1 count=$bytes status=none | xxd -p
else
echo "Unknown mode: $mode"
exit 1
fi