A salt is a cryptographically-secure random non-repeating value, added to the password before hashing it, rendering rainbow tables useless and making it impossible to attack more than one password by attacking one hash.
An initialization vector (IV) is a cryptographically-secure random non-repeating value added as the initial state to a block cipher algorithm depending on the mode of operation, preventing the cipher from producing the same ciphertext for similar blocks of the plaintext, thus denying the attacker the opportunity to infer relationships between segments of the encrypted message.
Both a salt and an IV aren't secret information, in fact, in most cases the IV is transported with the message itself. Implemented correctly, an IV shouldn't make it any easier to "crack" the encryption. On the contrary, it should make it even harder. The security of the cipher system should depend on the secrecy of key, and only on the secrecy of the key, AKA Kerckhoffs's principle:
That the security of a cipher system should depend on the key
Oh, also, don't implement your own crypto and use it in a production environment, AKA Don't be a Dave.