Java Security documentation: https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html
"The IV for encrypted messages is serving a similar purpose as a salt used for secure hashing": https://crypto.stackexchange.com/a/28980
PKBDF2 uses HMAC and salt to create a crypthographic key: https://en.wikipedia.org/wiki/PBKDF2#Purpose_and_operation
Otros https://stackoverflow.com/a/3452620/264786 https://stackoverflow.com/a/15926867/264786