En ce qui concerne la crypto moi ça m'a déjà servi plusieurs fois.
Des clients me demandaient d'encrypter leurs données. Selon les cas, on n'utilise pas le même type d'algorithmes : hash, CBC etc.
Chacun des algorithmes répond à une problématique donnée.
Il n'est pas obligatoire de savoir cela en amont, on peut se poser la question quand le problème vient, mais ça va toujours plus vite si on a les bases.
Après, il ne faut pas s'essayer à les implémenter pour autant, il y a forcément des tonnes de choses auxquelles on ne penserait pas qui ferait que l'algo en question ne serait pas sécurisé du tout (un algo doit par exemple conserver un temps de traitement fixe, même s'il s'aperçoit de l'incohérence du message en cours de décryption).
L'utilité n'apparaît vraiment que quand le besoin est là. Mais personnellement, ces besoins sont toujours apparus par la suite quand je ne m'y attendais pas.