字符加密与解密

自定义加解密字节数据的加密解密方法

package com;

import java.io.UnsupportedEncodingException;

/**
 *
 * String decrypt and encrypt
 *
 */
public class MyEncryptUtil {

	private static String key = "Crackersandthethiefwillsuffermisfortune";
	private static String encoding = "utf-8";

	public static String getKey() {
		return key;
	}

	public static void setKey(String key) {
		MyEncryptUtil.key = key;
	}

	public static String getEncoding() {
		return encoding;
	}

	public static void setEncoding(String encoding) {
		MyEncryptUtil.encoding = encoding;
	}
	
	public static String encrypt(String str) {
		return getString(encrypt(getByteArray(str)));
	}
	
	public static String decrypt(String str) {
		return getString(decrypt(getByteArray(str)));
	}
	/**
	 * encrypt
	 * 
	 * @param buffer
	 *            to be encrypted
	 * @return encrypt result
	 */
	public static byte[] encrypt(byte[] buffer) {
		int pos, keylen;
		pos = 0;
		byte[] KEYVALUE = null;
		try {
			KEYVALUE = key.getBytes(encoding);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		keylen = KEYVALUE.length;

		for (int i = 0; i < buffer.length; i++) {
			buffer[i] ^= KEYVALUE[pos];

			pos++;
			if (pos == keylen)
				pos = 0;
		}
		return buffer;
	}

	/**
	 * decrypt
	 * 
	 * @param buffer
	 *            to be decrypted
	 * @return decrypt result
	 */
	public static byte[] decrypt(byte[] buffer) {
		return encrypt(buffer);
	}

	/**
	 * trans
	 * 
	 * @param buffer
	 * @return if excption null
	 */
	public static String getString(byte[] buffer) {
		try {
			return new String(buffer, encoding);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 *
	 * @param str
	 * @return if excption null
	 */
	public static byte[] getByteArray(String str) {
		try {
			return str.getBytes(encoding);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return null;
		}
	}
	
	
	public static void main(String[] args) {
		try {
			MyEncryptUtil.setEncoding("gbk"); 
			String ens= MyEncryptUtil.encrypt("id=12&idno=120020120210223&name=faasss中文" ) ;
			System.out.println(ens);
			String src= MyEncryptUtil.decrypt(ens);
			System.out.println(src);
		} catch (Exception e) {
			e.printStackTrace();
		}
	
	}
}

0%