Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java安全地处理密码变量_Java_Security_Memory_Hash_Passwords - Fatal编程技术网

Java安全地处理密码变量

Java安全地处理密码变量,java,security,memory,hash,passwords,Java,Security,Memory,Hash,Passwords,我不是最有经验的程序员,尤其是在桌面应用程序方面 我正在做的一个实验就是获取一个密码,用MD5散列,然后显示散列。没问题 现在,我对数据结构以及如何在堆栈上存储数据一无所知。但是这个程序的目的是安全地处理密码和MD5散列,这样它就不会泄漏到内存中,并且有可能被恢复 我读过很多关于这方面的帖子,但他们都更关心的是如何将密码存储在内存中以便检索 以下是相关代码: String pass = new String(passwordField.getPassword()); pass = Hashing

我不是最有经验的程序员,尤其是在桌面应用程序方面

我正在做的一个实验就是获取一个密码,用MD5散列,然后显示散列。没问题

现在,我对数据结构以及如何在堆栈上存储数据一无所知。但是这个程序的目的是安全地处理密码和MD5散列,这样它就不会泄漏到内存中,并且有可能被恢复

我读过很多关于这方面的帖子,但他们都更关心的是如何将密码存储在内存中以便检索

以下是相关代码:

String pass = new String(passwordField.getPassword());
pass = Hashing.md5().hashString(pass, Charsets.UTF_8).toString();
hashField.setText(pass);
为了更好地理解这一点,请链接到正在发生的事情的屏幕截图:

据我所知,我正在正确地从密码字段检索输入,但我已经读到将它们存储为字符串是不允许的

然后我需要安全地显示MD5总和。
然后在退出时覆盖数据?

据我所知,任何人都无法嗅探JVM中的数据。。它有很好的沙盒功能。听起来这解决了问题。非常感谢。保护内存中的密码不受谁的影响?在现实生活中,您不应该使用单轮MD5进行密码哈希。使用bcrypt、scrypt或PBKDF2。