Все мысли, изложенные ниже, - мои личные. Философской истиной они быть не могут.
Вера.
Это слово имеет два основных значения: вера в общем смысле и вера религиозная. Я склонна считать, что второе значение используется едва ли не чаще, чем первое. И в этом смысле понятие "вера" заметно расходится с понятием "надежда".
Но очевидны и многочисленные точки соприкосновения. Человек верит, потому что надеется. Надежда - это, таким образом, элемент веры, и религиозной, и любой другой.
Надежда.
Помните песню, в которой она сравнивается с земным компасом? Надежда - это вектор развития веры. Мы верим в то, на что надеемся. И не верим ни во что, на что нет ни малейшей надежды. Это ещё один общий момент этих двух понятий.
Но если снова оттолкнуться от религиозной составляющей (без неё слово "вера" будет лексическим обрезком, похожим на выжатый наполовину лимон), то атеист, называемый в народе "неверующим", может иметь в своей душе (в которую он тоже не верит) большие надежды. Вот и ещё один эпизод разницы.