Finally figured out that node's crypto utility with md5 was encoding special characters differently than last.fm