Shiro權限框架中自帶的加密方式有Base64加密,MD5加密
在Maven項目的pom.xml中添加shiro的依賴:
<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency>
編寫測試程序:
package com.fpc.test; import org.apache.shiro.codec.Base64; import org.apache.shiro.crypto.hash.Md5Hash; public class Md5 { /* * base64加密 * */ public static String encodeBase64(String str) { return Base64.encodeToString(str.getBytes()); } /* * base64解密 * */ public static String decodeBase64(String str) { return Base64.decodeToString(str); } /* * Md5加密,shiro框架中自帶Md5,Md5沒有解密 * */ public static String md5(String str , String salt) { return new Md5Hash(str,salt).toString(); } public static void main(String[] args) { String password = "123456"; System.out.println("Base64加密:" + Md5.encodeBase64(password)); String passwordBase64 = Md5.encodeBase64(password); System.out.println("Base64解密:" + Md5.decodeBase64(passwordBase64)); //Md5加密應用到實際項目中開發比如:注冊提交數據時對密碼進行Md5加密得到的字符串存儲到數據庫 //做用戶驗證時把數據庫獲取到的密碼再和用戶提交的密碼(同樣進行Md5加密)比較是否相同 String salt = "md5_!_~+$shifferfef34ro_A7"; String passwordMd5 = Md5.md5(password, salt); System.out.println("Md5加密:" + passwordMd5 + " " + passwordMd5.length()); } }
運行結果:
Base64加密:MTIzNDU2 Base64解密:123456 Md5加密:83cfa2a455aa626fa20918dbd43b2ad1 32