자신 이 쓴 암호 화 복호화 클래스

1913 단어 sun
기술적 인 함량 은 없 으 며,자바 안의 다른 언어 를 사용 하 더 라 도 이러한 연산 이 있다.그래서 요?as3 로 전환 하거나 다른 것 은 다 가능 합 니 다.

import java.io.IOException;

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

public class Test {

	/**
	 *   
	 * 
	 * @param src
	 * @return
	 */
	public String encode(String src, String key) {
		if (src == null || src.equals(""))
			return "";
		byte[] b = src.getBytes(), k = key.getBytes();
		int len = b.length, klen = k.length;
		for (int i = 0; i < len; i++) {
			int index = i % klen;
			b[i] = (byte) (b[i] ^ k[index]);
		}

		return new BASE64Encoder().encode(b);
	}

	/**
	 *   
	 * 
	 * @param src
	 * @return
	 */
	public String decode(String src, String key) {
		if (src == null || src.equals(""))
			return "";
		String ret;
		try {
			ret = new String(new BASE64Decoder().decodeBuffer(src));
			byte[] b = ret.getBytes(), k = key.getBytes();
			int len = b.length, klen = k.length;
			for (int i = 0; i < len; i++) {
				int index = i % klen;
				b[i] = (byte) (b[i] ^ k[index]);
			}
			return new String(b);
		} catch (IOException e) {
			return "";
		}

	}

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//       ,        
		String key = "1234567";
		Test t = new Test();
		String tmp = "     ";
		String tmp2 = t.encode(tmp, key);
		System.out.println("   :"+tmp2);
		System.out.println("   :"+t.decode(tmp2, key));

	}

}

좋은 웹페이지 즐겨찾기