Java安全地处理密码变量
我不是最有经验的程序员,尤其是在桌面应用程序方面 我正在做的一个实验就是获取一个密码,用MD5散列,然后显示散列。没问题 现在,我对数据结构以及如何在堆栈上存储数据一无所知。但是这个程序的目的是安全地处理密码和MD5散列,这样它就不会泄漏到内存中,并且有可能被恢复 我读过很多关于这方面的帖子,但他们都更关心的是如何将密码存储在内存中以便检索 以下是相关代码:Java安全地处理密码变量,java,security,memory,hash,passwords,Java,Security,Memory,Hash,Passwords,我不是最有经验的程序员,尤其是在桌面应用程序方面 我正在做的一个实验就是获取一个密码,用MD5散列,然后显示散列。没问题 现在,我对数据结构以及如何在堆栈上存储数据一无所知。但是这个程序的目的是安全地处理密码和MD5散列,这样它就不会泄漏到内存中,并且有可能被恢复 我读过很多关于这方面的帖子,但他们都更关心的是如何将密码存储在内存中以便检索 以下是相关代码: String pass = new String(passwordField.getPassword()); pass = Hashing
String pass = new String(passwordField.getPassword());
pass = Hashing.md5().hashString(pass, Charsets.UTF_8).toString();
hashField.setText(pass);
为了更好地理解这一点,请链接到正在发生的事情的屏幕截图:
据我所知,我正在正确地从密码字段检索输入,但我已经读到将它们存储为字符串是不允许的
然后我需要安全地显示MD5总和。
然后在退出时覆盖数据?据我所知,任何人都无法嗅探JVM中的数据。。它有很好的沙盒功能。听起来这解决了问题。非常感谢。保护内存中的密码不受谁的影响?在现实生活中,您不应该使用单轮MD5进行密码哈希。使用bcrypt、scrypt或PBKDF2。