⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sautil.java

📁 新技术论坛系统 v1.0 前后台管理的初始用户名 : admin 密码 123456
💻 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 + -