I'd like to encrypt Text with AES/CTR and a password defined by the user in java. I already checked the internet (and stackoverflow) for answers. The most used version is to hash the user pwpassword with sha1 and take only the first 16bytes16 bytes.
But I don't think this can be a good praticepractice.
- sha1 is weak
- taking only the first 16bytes16 bytes makes the hash also weak and rise the chance for a collision (even with sha-256)
Is this really the best practice? Why? How can I do things better?
Some links to the articles I mentioned: