编码/解码
Shiro 提供了base64和16进制字符串编码/解码的API支持,方便一些编码解码操作。
base64 编码/解码操作:
String str = "hello";
String base64Encoded = Base64.encodeToString(str.getBytes());
String str2 = Base64.decodeToString(base64Encoded);
16进制字符串编码/解码操作:
String str = "hello";
String base64Encoded = Hex.encodeToString(str.getBytes());
String str2 = new String(Hex.decode(base64Encoded.getBytes()));
散列算法
是一种不可逆的算法,一般适合存储密码之类的数据,常见的散列算法如MD5、SHA等。一般进行散列时最好提供一个salt(盐),,如用户名和ID(即盐);这样散列的对象是“密码+用户名+ID”,这样生成的散列值相对来说更难破解。String str = "hello";
String salt = "123";
String md5 = new Md5Hash(str, salt).toString();//还可以转换为toBase64()/toHex()
如上代码通过盐“123”MD5 散列“hello”。
String str = "hello";
String salt = "123";
String sha1 = new Sha256Hash(str, salt).toString();