Supponendo che tu intenda "leggi il codice sorgente" e non "modifica il codice sorgente" quando dici "accesso al codice sorgente", quindi Il principio di Kerckhoffs si applica e tu sei effettivamente corretto che l'accesso al database raw sia una minaccia più grande. Questo non vuol dire che dovresti rendere facile per chiunque ottenere il tuo codice sorgente, ma idealmente il tuo sistema dovrebbe essere progettato in modo da non essere intrinsecamente vulnerabile se il tuo codice sorgente è trapelato.
Non riesco a immaginare un modo in cui gli hacker possano accedere ai record del database non elaborati e rimanere al sicuro. I tuoi utenti avranno bisogno di un sistema per convertire quei record in qualcosa di utile, e se si tratta di una chiave, allora dovrai dipendere in qualche modo dagli utenti la chiave in modo sicuro che gli aggressori non potrebbero mai scendere a compromessi. Dovresti utilizzare qualcosa come l'algoritmo di condivisione segreta di Shamir per dare a ciascun utente una chiave univoca, o cambiare il chiave (e reencrypt il tuo database) con una frequenza elevata in modo che gli utenti non possano accedere ai dati. Ciò presuppone che i tuoi aggressori non saranno mai utenti e non saranno mai in grado di compromettere i sistemi dell'utente e non saranno mai in grado di trovare la chiave sul tuo server. Se si intende che gli utenti malintenzionati possono inserire o aggiornare i record del database quando si dice "l'autore dell'attacco ha accesso ai record del database non elaborati", non c'è nulla che si possa fare per impedire che il sistema venga completamente utilizzato. Il tutto urla "cattiva idea".
Generalmente, gli utenti accedono ai database attraverso una pagina Web o un programma, ed è solo quel server Web o software che ha accesso al database. La pagina web o il programma gestisce l'autenticazione e limita ciò che gli utenti possono fare per prevenire gli attacchi. La pagina web o il programma devono essere scritti in modo tale che non accedano ai record degli utenti finché non li ha autenticati con le credenziali archiviate sul server di back-end; questo impedisce agli aggressori di ottenere i tuoi dati in modo molto più efficace di quello di dare via il tuo database e cercare di trovare un algoritmo di crittografia veloce per gli utenti e resistere alla bruteforcing da parte degli aggressori e un metodo di implementazione che proteggerà sufficientemente la tua chiave di decrittazione.
Tutto ciò che viene detto, AES sarebbe un algoritmo accettabile se davvero, davvero volessi farlo in quel modo, nonostante tutte le ragioni per cui sarebbe una cattiva idea.