Kicsit talán szögletes megoldás, meg nem is String specifikus, de nézzed meg a javax.crypto.SealedObject meg a javax.crypto.SignedObject-et, ezekkel meg lehet oldani a titkosítást és az aláírást is.