TEA java語言實現方法


/**
 * @author: heiing 2013-01-20 01:20
 */
public class TEA {

	public static byte[] encrypt(byte[] data, byte[] key) {
		int data_len = data.length; // 數據的長度
		if (data_len == 0) {
			return new byte[] {};
		}
		TEA t = new TEA();
		if (!t.setKey(key)) {
			return new byte[] {};
		}

		int group_len = 8;
		int residues = data_len % group_len; // 餘數
		int dlen = data_len - residues;

		// 用於儲存加密的密文,第一字節爲餘數的大小
		int result_len = data_len + 1;
		if (residues > 0) {
			result_len += group_len - residues;
		}
		byte[] result = new byte[result_len];
		result[0] = (byte) residues;

		byte[] plain = new byte[group_len];
		byte[] enc = new byte[group_len];

		for (int i = 0; i < dlen; i += group_len) {
			for (int j = 0; j < group_len; j++) {
				plain[j] = data[i + j];
			}
			enc = t.encrypt_group(plain);
			for (int k = 0; k < group_len; k++) {
				result[i + k + 1] = enc[k];
			}
		}
		if (residues > 0) {
			for (int j = 0; j &
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章