Nie stosowałem nigdy w praktyce ale myślę, że dobrym rozwiązaniem byłoby:
mcrypt_encrypt,
mcrypt_decrypt.
base64 jest dosyć pospolite i rozpoznawalne.
Przy mcrypt stosujesz swój klucz, który gdzieś może być dobrze schowany, a w skrajnym przypadku także w jakiś sposób zaszyfrowany (base64 + eval, dzięki czemu żadnym IDE nie wyszuka deklaracji klucza).
Treść wiadomości można umieszczać w polu blob (binarnym), standardowo nie można ich odczytać (w nowych wersjach phpmyadmin można wymusić wyświetlanie, ale o tym trzeba wiedzieć).