No, il testo cifrato dei codici moderni dovrebbe essere indistinguibile da casuale. Ciò significa che l'algoritmo non può essere rilevato automaticamente.
Generalmente l'algoritmo è preimpostato (hardcoded) o è un parametro di configurazione, stabilito in anticipo. Può essere stabilito in fase di runtime o salvato con il testo cifrato, ma si noti che gli avversari potrebbero anche modificare l'algoritmo prima che venga utilizzato.
Si noti che per esempio AES è un codice a blocchi, è non un cifrario di uso generale da solo. Per questo è anche richiesta una modalità di funzionamento del codice a blocchi. In altre parole, basta specificare il codice a blocchi non è sufficiente. Potrebbero esserci altri parametri che devono essere stabiliti.
Come già menzionato nei commenti, il protocollo definisce quando l'algoritmo è selezionato.