Password-Based Key Derivative Function 2# (PBKDF2#)
PBKDF2# is a Key Stretching algorithm. Key Stretching refers to techniques that are used to secure a possibly weak key, usually a password or a passphrase, by increasing the time it takes to test each key. Key stretching makes password cracking more difficult. The initial key is fed into an algorithm that outputs an enhanced key. The enhanced key should be of sufficient size to make it unfeasible to break by brute force (example: at least 128 bits).
The key stretching process leaves the attacker with 2 options: either try every possible combination of the enhanced key (unfeasible if the enhanced key is long enough), or else try likely combinations of the initial key. In the latter approach, if the initial key is a password or a passphrase, then the attacker would first try every word in a dictionary or common password list and then try all character combinations for longer passwords. Key stretching does not prevent this approach, but the attacker has to spend much more time on each attempt.