code: function evpBytesToKey(password, salt, dkLen) {
    var digests = [md5(password + salt)];
    for(var length = 16, i = 1; length < dkLen; ++i, length += 16) {
      digests.push(md5(digests[i - 1] + password + salt));
    }
    return digests.join('').substr(0, dkLen);
  }
docs: OpenSSL's legacy key derivation function.
  
  See: http://www.openssl.org/docs/crypto/EVP_BytesToKey.html
  
  @param password the password to derive the key from.
  @param salt the salt to use.
  @param dkLen the number of bytes needed for the derived key.