第八章:Shiro加密技术
一、Base64加密/解密 & MD5加密
CryptographyUtil.java
package com.java1234.common;
import org.apache.shiro.codec.Base64;
import org.apache.shiro.crypto.hash.Md5Hash;
/**
* Base64加密:可逆 MD5加密:不可逆
*/
public class CryptographyUtil {
public static void main(String[] args) {
// 要加密的字串
String password = "123456";
System.out.println("原字串:" + password);
// MD5加密
String md5Str = md5(password, "java1234");
System.out.println("MD5加密后:" + md5Str);
// 加密
String encStr = encBase64(password);
System.out.println("Base64加密后:" + encStr);
// 解密
String decStr = decBase64(encStr);
System.out.println("Base64解密后:" + decStr);
}
/**
* MD5加密
* @param str 要加密的字串
* @param salt 加密的盐
* @return 加密后的字串
*/
public static String md5(String str, String salt) {
return new Md5Hash(str, salt).toString();
}
/**
* Base64加密
* @param str 要加密的字串
* @return 加密后的字串
*/
public static String encBase64(String str) {
return Base64.encodeToString(str.getBytes());
}
/**
* Base64解密
* @param str 要解密的字串
* @return 解密后的字串
*/
public static String decBase64(String str) {
return Base64.decodeToString(str);
}
}
二、修改LoginServlet.java【在用户验证过程中,使用的是经过MD5加密后的密码,数据库中存储的也是MD5加密后的密码】
// 用MD5将密码加密 String md5_password = CryptographyUtil.md5(password, "java1234"); // 将登录的用户名和密码绑定到令牌Token UsernamePasswordToken token = new UsernamePasswordToken(userName, md5_password);
三、测试通过

浙公网安备 33010602011771号