一般我们在将密码存入数据库时,我们都会将其加密处理使得信息更加安全!
在这其中有两个好的算法,MD5和SHA(安全散列算法)!
本示例,比较简单,没事使用到key的更复杂的知识。只是简单的使用java提供的security包中的一些类。
String mailName = "xivaxiang@126.com";
String wayMD = "MD5";
BASE64Encoder encoder = new BASE64Encoder();
MessageDigest md5= MessageDigest.getInstance(wayMD);
String name = encoder.encode(md5.digest(mailName.getBytes()));
首先mailName是我们要加密的字符,
wayMD指的是加密方式,
构建BASE64编码,
初始化加密。
name就是我们所得到的字符串。
在验证密码时,你将输入的字符同样进行相同方式的加密后,可以进行equals比较。
这里的wayMD还可以是
SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512 MD4
同样,补充几点!
为什么加密,大家都知道其安全性!
那为什么使用BASE64的编码呢?
理由就是在网络传输中,由于某些系统中只能使用ASCII字符,而BASE64的作用就是将字符转换为ASCII字符。
比如我们在使用telnet邮箱时,就需要输入ASCII编码的用户名和密码。
下面是BASE64的解码方式。
String mailPassword = "xivaxiva";
BASE64Encoder encoder = new BASE64Encoder();
String pass = encoder.encode(mailPassword.getBytes());
BASE64Decoder decoder = new BASE64Decoder();
byte[] decoderName = decoder.decodeBuffer(name);
System.out.println(new String(decoderName));
至于MD5的解密方式,没有研究,暂时也不研究,呵。
当然,在这里我对BASE64也没有深入的研究!只是使用了一下java的API,在以后需要时,再看看吧!应该不难,就是一个ASCII的转换。