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

📄 desencrypter.java

📁 演示网站Portal单点登陆SSO的简单使用
💻 JAVA
字号:
import java.io.IOException;
import java.security.Key;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class DesEncrypter {

	public byte[] desEncrypt(byte[] src, byte[] enKey) {
		byte[] encryptedData = null;
		try {
			Key sKey = new SecretKeySpec(enKey, "DES");
			Cipher cp = Cipher.getInstance("DES/CBC/Nopadding");
			byte biv[] = new byte[8];
			IvParameterSpec iv = new IvParameterSpec(biv);
			cp.init(1, sKey, iv);
			int len = src.length % 8 != 0 ? (src.length / 8 + 1) * 8
					: src.length;
			byte[] resMisdn = new byte[len];
			System.arraycopy(src, 0, resMisdn, 0, src.length);
			encryptedData = cp.doFinal(resMisdn);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return encryptedData;
	}

	public String desDecrypt(byte[] debase64, String spKey) {
		String strDe = null;
		try {

			byte[] enKey = new byte[8]; // 密钥文件(byte)
			System.arraycopy(spKey.getBytes(), 0, enKey, 0,
					spKey.getBytes().length);

			Key sKey1 = new SecretKeySpec(enKey, "DES");
			Cipher cp = Cipher.getInstance("DES/CBC/Nopadding");
			byte biv[] = new byte[8];
			IvParameterSpec iv = new IvParameterSpec(biv);
			cp.init(Cipher.DECRYPT_MODE, sKey1, iv);
			byte ciphertext1[] = cp.doFinal(debase64);
			strDe = new String(ciphertext1).trim();

		} catch (Exception ex) {
			strDe = "";
			ex.printStackTrace();
		}
		return strDe;
	}

	public String base64DesEncrypt(String src, String key) {
		DesEncrypter encrypter = new DesEncrypter();
		byte desEncrypted[] = encrypter.desEncrypt(src.getBytes(), key
				.getBytes());
		BASE64Encoder encoder = new BASE64Encoder();
		String encrypted = encoder.encode(desEncrypted);
		return encrypted;
	}

	public String base64DesDecrypt(String src, String key) {
		DesEncrypter encrypter = new DesEncrypter();
		String decrypted = null;
		try {
			BASE64Decoder decoder = new BASE64Decoder();
			byte base64Decrypted[] = decoder.decodeBuffer(src);
			decrypted = encrypter.desDecrypt(base64Decrypted, key);
		} catch (IOException e) {
			System.out.println("base64DesDecrypt IOException:" + e);
		}
		return decrypted;
	}

	// Here's an example that uses the class:
	public static void main(String args[]) {
		String key = "sohugate";
		// 加密
		DesEncrypter encrypter = new DesEncrypter();
		String encrypted = encrypter.base64DesEncrypt("13466375130", key);
		System.out.println(encrypted);// 结果

		// 解密
		String decrypted = encrypter.base64DesDecrypt(encrypted, key);
		System.out.println(decrypted);// 结果
	}
}

⌨️ 快捷键说明

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