diff --git a/README b/README index b016c56..2ba6b2d 100644 --- a/README +++ b/README @@ -32,5 +32,7 @@ Other AWK scripts have the usage described in their comment headers. * utils/textereo.awk: ASCII art stereogram generator * utils/tgl.awk: The Great Library of useful functions missing in POSIX AWK * utils/imeigen.awk: Random valid IMEI generator (with optional TAC prefix) +* utils/cardgen.awk: Random valid banking card number generator + (with optional BIN prefix) --- Luxferre --- diff --git a/utils/cardgen.awk b/utils/cardgen.awk new file mode 100644 index 0000000..a293b13 --- /dev/null +++ b/utils/cardgen.awk @@ -0,0 +1,30 @@ +# Valid banking card number generator script +# +# Usage: awk -f cardgen.awk [BIN] +# you can pass any amount of digits, if less than 16 then the rest +# is randomized and the checksum is calculated accordingly +# if more, then it's truncated to 15 and the checksum is calculated +# if no BIN is passed, a fully random valid card number is generated +# +# Created by Luxferre in 2024, released into public domain + +# Luhn checksum (picoLuhn variation for 15 digits) +function luhn(ccstr, acc, i, l, d) { + acc = 0 + l = length(ccstr) # must be odd in this variation + for(i=0;i