### How Credit Card Algorithms Work: The Anatomy of Credit Card Numbers

Have you ever wondered how credit card numbers work? I mean, how they really work? How do they come up with the numbers? Credit cards actually follow a very specific pattern. Let's take a look at how they're set up.
Example of a Credit Card Number
4485 3151 5882 2849
These numbers are split up into various parts that identifiy different things about the credit card (who issued it, etc). These things are: major industry identifier, bank issuer ID, user ID and check number. They correspond to these parts of the number:
• Number 1 is the MII.
• Numbers 2-6 are the issuer ID, telling which bank the card is from.
• Numbers 7 to n-1 are the user ID.
• The last number is a check number to make the number valid against the checking algorithm.

## MMI

The major industry identifier tells you what the card is for. Here are the numbers and corresponding meanings.
MMI / Digit Value Category
0 = ISO/TC 68 and other industry assignments
1
= Airlines
2
= Airlines and other industry assignments
3 = Travel and entertainment
4
= Banking and financial
5
= Banking and financial
6
= Merchandising and Banking
7
= Petroleum
8
= Telecommunications and other industry assignments
9
= National assignment

## Issuer ID

The issuer ID is for identifying which bank owns the card. Here are the bigger companies numbers.
Issuer Identifier                        Card Number                                        Length
• Diner's Club/Carte Blanche   300xxx-305xxx, 36xxxx, 38xxxx         14
• American Express                   34xxxx, 37xxxx                                    15
• VISA                                        4xxxxx                                                  13, 16
• Mastercard                              51xxxx-55xxxx                                     16
• Discover                                  6011xx                                                  16
As you can tell from this chart, my example number is a VISA card.

## User ID

This number is pretty self-explanatory. The user ID is the identification for who owns the card. With VISA, each bank has 999,999,999 possible card holders. These are given based on availability.

## Check Number

To ensure that credit card numbers are valid, a final checking number is appended to each number to ensure that it passes a checking algorithm, otherwise known as the Luhn check. Let's check to see if my fake number above is a valid credit card number.

#### Checking Number Validity

1. Let's split up the number I made so that we have an easier time managing the number check.
4 4 8 5             3 1 5 1              5 8 8 2                 2 8 4 9
2. From the back, double every other number.
8 4 (16) 5        6 1 (10) 1         (10) 8 (16) 2       4 8 8 9
3. After, we have to de-concatenate the double-digit numbers and then add them to make one single digit.
8 4 7 5             6 1 1 1              1 8 7 2                 4 8 8 9
If you add all of the numbers together and they add up to a multiple of 10, you have a valid credit card number!

### sxhkd volume andbrightness config for dwm on void

xbps-install  sxhkd ------------ mkdir .config/sxhkd cd .config/sxhkd nano/vim sxhkdrc -------------------------------- XF86AudioRaiseVolume         amixer -c 1 -- sset Master 2db+ XF86AudioLowerVolume         amixer -c 1 -- sset Master 2db- XF86AudioMute         amixer -c 1 -- sset Master toggle alt + shift + Escape         pkill -USR1 -x sxhkd XF86MonBrightnessUp          xbacklight -inc 20 XF86MonBrightnessDown          xbacklight -dec 20 ------------------------------------------------------------- amixer -c card_no -- sset Interface volume run alsamixer to find card no and interface names xbps-install -S git git clone https://git.suckless.org/dwm xbps-install -S base-devel libX11-devel libXft-devel libXinerama-devel  vim config.mk # FREETYPEINC = \${X11INC}/freetype2 #comment for non-bsd make clean install   cp config.def.h config.h vim config.h xbps-install -S font-symbola #for emoji on statusbar support     void audio config xbps-i