I am trying to create a totally different profile page (not the one provided by Wordpress), since the layout and feel of the default profile page is too "Wordpress" for the users. Now I am successful in being able to present a page that can modify user meta data like firstname, lastname, city, zip code, etc.
Now what stumped me is changing the password of the user. Is there any built-in wordpress function, say change_user_password($user_id, $new_password)? I'm surprised that I can't look for anything that does this.
Worse comes to worst I'm doing an UPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_id
, but I would be really amazed if there is no function for this one.
md5
for passwords in WordPress is deprecated (but still backwards compatible - next time user logins password will be re-hashed and re-saved). It is better to go through API so that current and more complex hashing scheme is used.