📄 sautil.java
字号:
package com.ntsky.bbs.util;
import org.apache.log4j.Logger;
import com.ntsky.framework.util.security.Base64;
import com.ntsky.framework.util.security.SHA1;
import com.ntsky.framework.util.security.MD5;
import com.ntsky.bbs.util.Application;
/**
* signing authority(签字权)
* 网站安全工具类。
*
* @author ntsky
* @link www.ntsky.com
*/
public class SAUtil {
private final static Logger logger = Logger.getLogger(SAUtil.class.getName());
/**
* 生成校验码
*
* @param data 原始数据
* @return string 校验码
*/
public static String generateSig(String data){
// 系统信息
Application application = Application.getInstance();
// 数据和系统设定的加密串字符
StringBuffer sb = new StringBuffer();
sb.append(encode(data));
sb.append(application.getSecurity("system"));
//sb.append("A_ntsky*&_+@toblog");
/*if(logger.isDebugEnabled()){
logger.debug("sig : " + MD5.md5(sb.toString()));
}*/
return MD5.md5(sb.toString());
}
/**
* 解密Base64加密后的数据
* @param base64Data base64加密后的数据
* @return
*/
public static String decode(String base64Data){
return Base64.decode(base64Data);
}
/**
* 使用Base64加密数据
* @param data 数据
* @return 加密后的数据
*/
public static String encode(String data){
return Base64.encode(data);
}
/**
* 生成加密的URL
* @param data 原始的URL 例如:rp=1&id=5
* @return
*/
public static String generateURL(String data){
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("data=");
stringBuffer.append(encode(data));
stringBuffer.append("&");
stringBuffer.append("sig=");
stringBuffer.append(generateSig(data));
return stringBuffer.toString();
}
/**
* 校验URL是否合法
* @param sig 校验串
* @param base64Data base64数据
* @return boolean 是否合法
*/
public static boolean checkSig(String sig,String base64Data){
if((sig==null) || ("".equals(sig))) return false;
return sig.equals(generateSig(decode(base64Data)))?true:false;
}
public static void main(String[] args) {
System.out.println("decode : " + decode("cnA9M18y"));
System.out.println(generateSig(decode("cnA9M18y")));
//data=&sig=b0241ffe1ab555bc1339064fecc870d1
System.out.println(checkSig("b0241ffe1ab555bc1339064fecc870d1","cnA9M18y"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -