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

📄 encrypt.java

📁 struts2+spring+Hibernate整合的一个网站案例
💻 JAVA
字号:
package myitem.encrypt;

/*数据加密、解密*/

import java.security.*;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;

/*字符串加密工具集合*/

public class Encrypt{
	private static final String PASSWORD_CRYPT_KEY = "webkaidi";
	private final static String DES = "DES";

	/*加密*/
	//参数说明:数据源(进行加密的数据),密钥(长度必须是8的倍数)
	public static byte[] encrypt(byte[] source, byte[] key)throws Exception{
		//DES算法要求有一个可信任的随机数源
        SecureRandom sr = new SecureRandom();
        //从原始密匙数据创建DESKeySpec对象
        DESKeySpec dks = new DESKeySpec(key);
        //创建一个密匙工厂
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
        //利用密钥工厂把DESKeySpec转换成一个SecretKey对象
        SecretKey securekey = keyFactory.generateSecret(dks);
        //Cipher对象实际完成加密操作
        Cipher cipher = Cipher.getInstance(DES);
        //用密匙初始化Cipher对象
        cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
        //现在,获取数据并加密
        //正式执行加密操作
        return cipher.doFinal(source);
	}

	/*加密*/
	//参数说明:数据源(加密的数据),密钥(长度必须是8的倍数)
	public static byte[] decrypt(byte[] source, byte[] key)throws Exception{
		//DES算法要求有一个可信任的随机数源
        SecureRandom sr = new SecureRandom();
        //从原始密匙数据创建DESKeySpec对象
        DESKeySpec dks = new DESKeySpec(key);
        //创建一个密匙工厂
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
        //利用密钥工厂把DESKeySpec转换成一个SecretKey对象
        SecretKey securekey = keyFactory.generateSecret(dks);
        //Cipher对象实际完成解密操作
        Cipher cipher = Cipher.getInstance(DES);
        //用密匙初始化Cipher对象
        cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
        //现在,获取数据并解密
        // 正式执行解密操作
        return cipher.doFinal(source);
	}

	/*数据加密*/
	//参数说明:需加密的字符串
	public final static String encrypt(String str){
		try{
			return ByteTHex(encrypt(str.getBytes(),PASSWORD_CRYPT_KEY.getBytes()));
		}catch(Exception e){
			
		}
		return null;
	}

	/*数据加密*/
	//参数说明:需解密的字符串
	public final static String decrypt(String str){
		try{
			return new String(decrypt(HexTByte(str.getBytes()),
					PASSWORD_CRYPT_KEY.getBytes())); 
		}catch(Exception e){
			
		}
		return null;
	}

	/*二进制转换为字符串*/
	//参数说明:需要进行转换的二进制
	public static String ByteTHex(byte[] b){
		String hs = "";
        String stmp = "";

        for(int n=0; n<b.length; n++){
        	stmp = (java.lang.Integer.toHexString(b[n]&0XFF));
        	if(stmp.length() == 1){
                hs = hs+"0"+stmp;
        	}else{
                hs = hs+stmp;
        	}
        }
        return hs.toUpperCase();
	}

	public static byte[] HexTByte(byte[] b){
		if((b.length%2)!=0){
			
		}
		byte[] Byte = new byte[b.length/2];
		for(int n=0; n<b.length; n+=2){
             String item = new String(b,n,2);
             Byte[n/2] = (byte)Integer.parseInt(item,16);
        }
		return Byte;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -