Java 在文本文件中隐藏密码
我需要将用户名和密码保存在文本文件中,格式为:用户名#密码。Java中有没有隐藏密码字符的方法?Java 在文本文件中隐藏密码,java,file,text,password-encryption,Java,File,Text,Password Encryption,我需要将用户名和密码保存在文本文件中,格式为:用户名#密码。Java中有没有隐藏密码字符的方法? 因此,如果我打开该txt文件,则无法读取密码。一个txt文件是一个纯文本文件,这意味着除非对其进行加密,否则无法隐藏其内容: 或者,如果可以选择更改要求,则可以存储哈希而不是密码: 代码如下所示: public class mjm { public static void main(String[] args) { String k="xyz@gmail.com#abcd1234";
因此,如果我打开该txt文件,则无法读取密码。一个
txt
文件是一个纯文本文件,这意味着除非对其进行加密,否则无法隐藏其内容:
或者,如果可以选择更改要求,则可以存储哈希而不是密码:
代码如下所示:
public class mjm {
public static void main(String[] args) {
String k="xyz@gmail.com#abcd1234";
//xyz.gmail.com is id and abcd1234 passward
//encrypting passward starts here
char[] b=k.toCharArray();
System.out.println(k);
for(int a=0;a<b.length;a++)
{
int c=(int)(b[a]);
c=c^31;
b[a]=(char)c;
}
k=new String(b);
System.out.println(k);
//decryption code of above encrypted code is as follow
b=k.toCharArray();
for(int a=0;a<b.length;a++)
{
int c=(int)(b[a]);
c=c^31;
b[a]=(char)c;
}
k=new String(b);
System.out.println(k);
}
}
公共类mjm{
公共静态void main(字符串[]args){
字符串k=”xyz@gmail.com#abcd1234”;
//xyz.gmail.com是id和abcd1234密码
//加密passward从这里开始
char[]b=k.toCharArray();
系统输出println(k);
对于(int a=0;a密码,我强烈建议使用散列函数,如MD5、SHA-1、SHA-256、SHA-512、xxHash等,而不是加密
如果您真的想使用加密,您可能想尝试AES。
()
示例AES Java代码:
如果我打开txt文件,如果你不能读取密码,你就不能使用它-因此它必须是可读的。我希望你不要认为你在这样一个文件中输入的用户名和密码是保密的。即使你加密了文件,你的程序中也有解密密钥。还有任何拥有适当权限的人,比如作为运行进程的人-可以访问进程的内存,并可以获取用户名和密码。需要更多有关使用的信息,这是每个用户、用户设备上还是服务器上的信息?密码是如何使用的以及用于什么目的的。谁是攻击者以及什么值($$)是否受到保护?正如zaph所说,您应该写下是否确实需要检索密码(例如,将其发送到另一个服务),或者是否只需要进行身份验证。在后一种情况下,您只能存储密码的散列(BCrypt、SCrypt、PBKDF2)并使用此散列验证输入的密码。仅使用散列函数是不够的,仅添加一个salt对提高安全性几乎没有作用。相反,使用随机salt在HMAC上进行大约100ms的读写,并使用散列保存salt。使用诸如password_hash、PBKDF2、Bcrypt等函数。重点是使攻击者花费大量时间通过暴力手段查找密码。不要加密密码,当攻击者获得DB时,他也将获得加密密钥。此外,此算法非常安全!请参阅@Zek的注释。通常情况下,不要加密密码,这是不安全的。此外,如何确保加密传递的安全单词