Sto progettando un semplice login utente / programma di registrazione con login / registro utente e un repository. Le password per gli utenti devono essere crittografate quando sono archiviate, ma non so dove mettere il passaggio di crittografia sul repository o nel servizio che gestisce la logica per la registrazione / login in un utente. le password degli utenti dovrebbero sempre essere crittografate e per questo motivo penso che sia meglio avere questa logica nel repository dato che è la classe che verrà chiamata ogni volta che voglio fare qualcosa con un utente. Mettere la logica di crittografia sul servizio significa che ogni servizio che vuole fare qualcosa con un utente deve essere consapevole della logica di crittografia.
Dall'altro lato, non so se il repository dovrebbe essere a conoscenza di questa logica.
O forse vale la pena creare un oggetto valore "UserPassword" che riceve la password grezza e una cifra come parametri del costruttore e salva immediatamente la password crittografata per il recupero futuro?
Sto provando a progettare un'architettura esagonale. (Non so se questo può aiutare)