I'm creating a program with key access for a determined term. I've made a code that will generate a key (password) with 16 characters length. The following information is encoded:
- initial date 6 characters, ex. 010120;
- term up to 3 characters length, ex. 1 or 10 or 365 days;
- term length identificatior, ex. 1 or 2 or 3, depending on term number length;
- 6 randomly generated symbols: lower/uppercase letters and numbers. These characters are scattered in the password string using some logic (to be decoded by password verification code).
Encoding is simply based on ASCII codes of symbols.
Example of coding letters: a b c d e f = ASCII codes 126 + 127 + 128 + 129 + 130 + 131 = 771 = 7 + 7 + 1 = 15. 15 is the control sum. Thus generating a key my code loops through random codes ASCII until the control sum will be equal 15 - this is the generated letter part of the password. This control sum is after used to verify is the password is correct. Digits for the date are encoded simply by adding a constant value to the ASCII number code (48 to 57) to get a letter.
Here are examples of keys (used another control sum):
3Y6CEecb0MYc1e1c, oPFjeefcAD8m2dmd, bF5bGfdb4dud2ejd, ClEigfdbydcd2ezd
My question is about the "strength" of this password: how easily it could be hacked, or date and term part discovered?