If the best practice for handling sensitive data in Java is to use character arrays, why do most methods in Spring Security use String or CharSequence? For example the methods on Encryptors take CharSequence. In fact, looking at the source code of those methods, they actually end up converting the CharSequence to a String. Since the folks on that project have more lifetimes of experience in these matters than I will ever have, I feel like I must be missing something. Does anyone have any insight into how to pass sensitive data to these methods?