Skip to main content
2 of 3
added 260 characters in body

AES: Why is it a good practice to use only the first 16bytes of a hash for encryption?

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 pw with sha1 and take only the first 16bytes.

But I don't think this can be a good pratice.

  1. sha1 is weak
  2. taking only the first 16bytes 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: