在做登陆功能时候,需要对数据进行加密。
登陆功能有在线登陆、离线登陆、记住密码三个功能
要是没有记住密码,MD5搞定加密足够了。
但是,要在在线、离线基础上,加上记住密码,md5就有问题了,因为MD5不可逆,使用记住密码之后,密码会出错,因为进行了二次加密
所以,要采用一种可逆的加密算法,即能够加密,也能够解密,这样呢,Base64就出现了。
就是使用了Java里面自带的两种方法,并简单的封装了一下工具类。
package com.logis.tool.utils;
import java.io.UnsupportedEncodingException;
import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;
public class BASE64 {
/**
* BASE64解密
* @param key
* @return
* @throws Exception
*/
public static String decryptBASE64(String key, String charset) throws Exception {
return new String((new BASE64Decoder()).decodeBuffer(key), charset);
}
/**
* BASE64解密 默认支持UTF-8
*
* @param key
* @return
* @throws Exception
*/
public static String decryptBASE64(String key) throws Exception {
return decryptBASE64(key, "UTF-8");
}
/**
* BASE64加密 默认加密
* @param key
* @return
* @throws UnsupportedEncodingException
* @throws Exception
*/
public static String encryptBASE64(String key, String charset) throws UnsupportedEncodingException {
return (new BASE64Encoder()).encodeBuffer(key.getBytes(charset));
}
/**
* BASE64加密 默认加密方式UTF-8
*
* @param key
* @return
* @throws UnsupportedEncodingException
* @throws Exception
*/
public static String encryptBASE64(String key) throws Exception {
return encryptBASE64(key, "UTF-8");
}
/*
* public static void main(String[] args) throws Exception { String data =
* BASE64.encryptBASE64("我是中文"); System.out.println("加密前:" + data);
*
* String byteArray = BASE64.decryptBASE64(data); System.out.println("解密后:"
* + new String(byteArray)); }
*/
}