Hallo marctrix,
Nein. Sie dürfen aber niemandem lesbar in die Hände fallen. Dafür ist (ausreichende) Verschlüsselung ein gutes Mittel.
Eher ein unrealistisches Mittel. Das ist das klassische Henne-Ei-Problem: die Software muss auf die Daten zugreifen können. Damit das geht, muss sie den Key zum entschlüsseln der Daten kennen. Wenn die Software den Key kennt, dann kennt sie auch jemand, der die Daten abgreifen kann. Damit ist die Verschlüsselung wieder hinfällig.
Üblicherweise sieht so eine Verschlüsselung der Daten so aus, dass man die DB-Files auf einer verschlüsselten Partition ablegt. Die ist halt nach dem Booten des Betriebssystems aufgeschlossen und jeder, der Zugriff auf das System hat, hat auch Zugriff auf die Daten.
Eine andere Möglichkeit wäre es, wenn man dem User einen Key abverlangt und die Daten mit dem Key verschlüsselt in die Datenbank schreibt. Das führt dazu, dass die DB nicht mehr durchsuchbar ist (man kennt ja immer nur den Key der aktuellen Session) und man ggfls auch Performance-Probleme bekommt.
Anders sieht das mit Daten wie dem Passwort aus. Das benötigt man nicht im Klartext. Man muss nur mit Hilfe des Original-Passworts (das der User zum Zeitpunkt des Logins angibt) zum Hash bzw abgeleiteten Wert kommen.
Aber mit Daten, die die Software lesen können soll, ist das unrealistisch…
LG,
CK