Hello! I am a student preparing for a programming contest. For him, I prepared a program for android - password master. I developed my password encryption algorithm. This is a simple Caesar cipher, but the key is extracted from the vault password (from its length), which is encrypted in md5. The idea is in a simple encryption algorithm, the key from which an attacker cannot get, because it is not stored.
But in this situation, the attacker could pick up a key from as few as 255 variants (255 is the length of the string with all the characters in Caesar’s cipher), but this number can be increased to 255 to the power n, where n is the length of the password characters to be encrypted if select a separate key for each character in this password. At the same time, we need to extract these keys also from the main password, but at the same time we cannot use two variables twice (variables - that is, ways of obtaining a number from this password. For example, the password length and the number of the most frequently repeated characters in it), t .to. they will vytikat from previous rebounds.
What do you think of this algorithm? How reliable is it? How to pick n keys? How else to improve it? Thanks for attention!