Hyphen is a basically a small mark (-) that is used to link two or more words together like next-to-last, user-friendly .etc.(it never has spaces on its sides)
A dash is a larger mark with spaces on the side which is used to link together two words, usually marking a contradiction. She passed the exam -- and she thought she failed.
HOPE THIS HELPS! :)