I have clients sending data to a server. The data is not encrypted, but that's OK. I want to make sure the server only accepts data from authorized clients.
The server knows all of the clients' passwords. The clients generate a fairly random string (the first 6 characters of a UUID, gotten through the Python uuid.uuid4() function). They do md5(random_string + password), and send this and the random string along with their data. The server takes the random string, the password, and does the md5 itself to verify that the client does indeed know the password.
Is this home-made system adequate? Again, I just want clients to be verified, I'm not worried about encryption of the data.