首先我们在实际开发过程中肯定是需要对明文密码进行加密的,这样,就算密码被获取,他们获取到的也是一串乱码。
而目前主流的加密算法有MD5和SHA,这篇文章就带你来实现SHA加密
import java.math.BigInteger;
import java.security.MessageDigest;
public class SHAEncryption {
public static byte[] encryptSHA(byte[] data, String shaN) throws Exception {
MessageDigest sha = MessageDigest.getInstance(shaN);
sha.update(data);
return sha.digest();
}
public static String encryptFlychordPwd(String str) {
byte[] outputData = new byte[0];
try {
outputData = encryptSHA(str.getBytes(), "SHA-256");
return new BigInteger(1, outputData).toString(16);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static void main(String[] args) {
//加密123456
System.out.println(ss.encryptFlychordPwd("123456"));
}
}
很多人肯定会出来反驳,加密简单的123456可以在某些解密网站直接解密出来。
在这样的情况下,我们可以尝试在字符串追加其他文字如yangzhangyin,实际如下:
import java.math.BigInteger;
import java.security.MessageDigest;
public class SHAEncryption {
public static byte[] encryptSHA(byte[] data, String shaN) throws Exception {
MessageDigest sha = MessageDigest.getInstance(shaN);
sha.update(data);
return sha.digest();
}
public static String encryptFlychordPwd(String str) {
byte[] outputData = new byte[0];
try {
outputData = encryptSHA((str+"yangzhangyin").getBytes(), "SHA-256");
return new BigInteger(1, outputData).toString(16);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static void main(String[] args) {
//加密123456
System.out.println(ss.encryptFlychordPwd("123456"));
}
}
这样就解决了简单密码被解密的问题啦。
网友评论