亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rijndael_util.java

?? 用JAVA編寫的rijndael工具
?? JAVA
字號:
package mit.Rijndael;

import java.security.InvalidKeyException;

/**
 * 這個類用于方便對數據使用AES算法對數據進行加密。AES算法只能一塊一塊對數據進行加密。
 * 
 * @author szuJobs
 * 
 */
public class Rijndael_Util {
	private static final int DEFAULT_BLOCK_SIZE = 16;

	/**
	 * 將4個byte組裝成一個整數
	 * 
	 * @param bytes
	 * @param offSet
	 * @return
	 */
	public final static int getInt(byte[] bytes, int offSet) {
		return ((((bytes[offSet + 0] & 0xff) << 24)
				| ((bytes[offSet + 1]) << 16)
				| ((bytes[offSet + 2] & 0xff) << 8) | ((bytes[offSet + 3] & 0xff) << 0)));
	}

	/**
	 * 將一個整數拆為4個byte
	 * 
	 * @param val
	 * @param bytes
	 * @param offSet
	 */
	public final static void putInt(int val, byte[] bytes, int offSet) {
		bytes[offSet] = (byte) (val >> 24);
		bytes[offSet + 1] = (byte) (val >> 16);
		bytes[offSet + 2] = (byte) (val >> 8);
		bytes[offSet + 3] = (byte) val;
	}

	public static String byte2String(byte[] bytes) {
		StringBuffer buff = new StringBuffer();
		for (int i = 0; i < bytes.length; ++i) {
			if (i != 0) {
				buff.append(", ");
			}
			buff.append(bytes[i]);
		}
		return buff.toString();
	}

	public static byte[] make_kb_16(String strKey) {
		return make_kb(strKey, 16);
	}

	public static byte[] make_kb_24(String strKey) {
		return make_kb(strKey, 24);
	}

	public static byte[] make_kb_32(String strKey) {
		return make_kb(strKey, 32);
	}

	private static byte[] make_kb(String strKey, int size) {
		byte[] kb = new byte[size];
		byte[] bytes = strKey.getBytes();
		System.arraycopy(bytes, 0, kb, 0, bytes.length > size ? size
				: bytes.length);
		return kb;
	}

	public static String encode(String key, String strData)
			throws InvalidKeyException {
		byte[] kb = make_kb_32(key);
		byte[] pt = strData.getBytes();
		byte[] ct = encode(kb, pt, DEFAULT_BLOCK_SIZE);
		return Base64.encode(ct);
	}

	public static String encode(String key, String strData, int blockSize)
			throws InvalidKeyException {
		byte[] kb = make_kb_32(key);
		byte[] pt = strData.getBytes();
		byte[] ct = encode(kb, pt, blockSize);
		return Base64.encode(ct);
	}

	public static String decode(String key, String strData)
			throws InvalidKeyException {
		byte[] kb = make_kb_32(key);
		byte[] ct = Base64.decode(strData);
		byte[] cpt = decode(kb, ct, DEFAULT_BLOCK_SIZE);
		return new String(cpt);
	}

	public static String decode(String key, String strData, int blockSize)
			throws InvalidKeyException {
		byte[] kb = make_kb_32(key);
		byte[] ct = Base64.decode(strData);
		byte[] cpt = decode(kb, ct, blockSize);
		return new String(cpt);
	}

	public static byte[] encode(byte[] kb, byte[] pt, int blockSize)
			throws InvalidKeyException {
		Object key = Rijndael_Algorithm.makeKey(kb, blockSize);

		int dataLength = pt.length;

		int mode = dataLength % blockSize;

		byte[] ct = new byte[mode == 0 ? pt.length : 8 + dataLength + blockSize
				- mode];

		for (int i = 0; i < dataLength; i += blockSize) {
			int restDataLength = dataLength - i;

			if (restDataLength >= blockSize) {
				byte[] block_ct = Rijndael_Algorithm.blockEncrypt(pt, i, key,
						blockSize);
				System.arraycopy(block_ct, 0, ct, i, blockSize);
			} else {
				if (blockSize == 16 || blockSize == 24) {
					Object last_block_key = Rijndael_Algorithm.makeKey(kb,
							blockSize + 8);
					byte[] block_pt = new byte[blockSize + 8];
					System.arraycopy(pt, i, block_pt, 0, restDataLength);
					putInt(dataLength, block_pt, blockSize);

					byte[] block_ct = Rijndael_Algorithm.blockEncrypt(block_pt,
							0, last_block_key, blockSize + 8);

					System.arraycopy(block_ct, 0, ct, i, blockSize + 8);
				} else { // 32
					Object key_16 = Rijndael_Algorithm.makeKey(kb, 16);
					byte[] block_24_pt = new byte[24];
					if (restDataLength > 16) {
						byte[] block_16_ct = Rijndael_Algorithm.blockEncrypt(
								pt, i, key_16, 16);
						restDataLength -= 16;
						System.arraycopy(block_16_ct, 0, ct, i, 16);

						System.arraycopy(pt, i + 16, block_24_pt, 0,
								restDataLength);
					} else {
						byte[] block_pt = new byte[16];
						System.arraycopy(pt, i, block_pt, 0, restDataLength);

						byte[] block_16_ct = Rijndael_Algorithm.blockEncrypt(
								block_pt, 0, key_16, 16);
						System.arraycopy(block_16_ct, 0, ct, i, 16);
					}

					Object key_24 = Rijndael_Algorithm.makeKey(kb, 24);

					putInt(dataLength, block_24_pt, 16);

					byte[] block_24_ct = Rijndael_Algorithm.blockEncrypt(
							block_24_pt, 0, key_24, 24);
					System.arraycopy(block_24_ct, 0, ct, i + 16, 24);
				}
			}
		}

		return ct;
	}

	public static byte[] decode(byte[] kb, byte[] ct, int blockSize)
			throws InvalidKeyException {

		int mode = ct.length % blockSize;

		Object key = Rijndael_Algorithm.makeKey(kb, blockSize);

		byte[] pt;
		if (mode == 0) {
			pt = new byte[ct.length];

			for (int i = 0; i < ct.length; i += blockSize) {
				byte[] block_pt = Rijndael_Algorithm.blockDecrypt(ct, i, key,
						blockSize);

				System.arraycopy(block_pt, 0, pt, i, blockSize);
			}
		} else {
			if (blockSize == 16 || blockSize == 24) {
				Object first_key = Rijndael_Algorithm
						.makeKey(kb, blockSize + 8);
				byte[] last_block_pt = Rijndael_Algorithm.blockDecrypt(ct,
						ct.length - blockSize - 8, first_key, blockSize + 8);

				int dataLength = getInt(last_block_pt, blockSize);

				pt = new byte[dataLength];
				System.arraycopy(last_block_pt, 0, pt, ct.length - blockSize
						- 8, dataLength % blockSize);
			} else { // 32
				Object key_24 = Rijndael_Algorithm.makeKey(kb, 24);
				byte[] last_block_24_pt = Rijndael_Algorithm.blockDecrypt(ct,
						ct.length - 24, key_24, 24);

				int dataLength = getInt(last_block_24_pt, 16);
				pt = new byte[dataLength];

				if (dataLength > ct.length - 24) {
					System.arraycopy(last_block_24_pt, 0, pt, ct.length - 24,
							dataLength - (ct.length - 24));
				}

				Object key_16 = Rijndael_Algorithm.makeKey(kb, 16);
				byte[] last_block_16_pt = Rijndael_Algorithm.blockDecrypt(ct,
						ct.length - 24 - 16, key_16, 16);
				if (pt.length > ct.length - 24) {
					System.arraycopy(last_block_16_pt, 0, pt,
							ct.length - 24 - 16, 16);
				} else {
					System.arraycopy(last_block_16_pt, 0, pt,
							ct.length - 24 - 16, pt.length
									- (ct.length - 24 - 16));
				}
			}

			for (int i = 0; i < ct.length - blockSize - 8; i += blockSize) {
				byte[] block_pt = Rijndael_Algorithm.blockDecrypt(ct, i, key,
						blockSize);
				System.arraycopy(block_pt, 0, pt, i, blockSize);
			}
		}

		return pt;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄色尤物视频| 精品一区二区综合| 亚洲自拍欧美精品| 一区二区三区四区五区视频在线观看| 国产精品天美传媒沈樵| 久久久久久一二三区| 久久先锋影音av鲁色资源| 精品1区2区在线观看| 久久免费看少妇高潮| 国产视频在线观看一区二区三区| 久久只精品国产| 国产清纯在线一区二区www| 国产亚洲欧美日韩在线一区| 亚洲国产精品黑人久久久| 国产精品丝袜91| 亚洲欧美日韩中文播放 | 亚洲第一会所有码转帖| 亚洲图片欧美综合| 日本sm残虐另类| 韩国v欧美v亚洲v日本v| 国产二区国产一区在线观看| 国产成人在线免费观看| 不卡影院免费观看| 欧美伊人久久久久久久久影院| 欧美日韩国产一二三| 欧美成人vps| 国产精品久久久久永久免费观看 | 日韩女优制服丝袜电影| 久久久亚洲综合| 亚洲欧洲av在线| 水蜜桃久久夜色精品一区的特点| 美女视频黄 久久| 高潮精品一区videoshd| 91社区在线播放| 欧美一卡二卡三卡| 国产精品理论在线观看| 亚洲一区二区视频| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩av网站免费在线| 极品瑜伽女神91| 一本大道久久精品懂色aⅴ | 天堂成人国产精品一区| 精品午夜久久福利影院| 一本色道a无线码一区v| 精品人在线二区三区| 亚洲男同性视频| 九九精品视频在线看| 一本一本久久a久久精品综合麻豆| 欧美一个色资源| 亚洲色图另类专区| 精品一区二区在线观看| 色呦呦国产精品| 久久综合色婷婷| 亚洲国产va精品久久久不卡综合| 国产一区二区免费看| 在线精品视频免费播放| 久久久久国产成人精品亚洲午夜| 亚洲综合成人在线视频| 国产精品白丝jk白祙喷水网站| 欧美日韩在线播放三区四区| 国产无遮挡一区二区三区毛片日本| 亚洲一卡二卡三卡四卡无卡久久| 国产高清成人在线| 69久久夜色精品国产69蝌蚪网| 国产日韩精品一区二区浪潮av | 成人黄动漫网站免费app| 日韩限制级电影在线观看| 亚洲欧美日韩一区二区| 国产一区不卡视频| 欧美人狂配大交3d怪物一区| 综合av第一页| 国产精品99久久久久| 日韩一级精品视频在线观看| 亚洲黄色录像片| 成人精品一区二区三区中文字幕| 日韩一级视频免费观看在线| 一区二区三区成人| 9久草视频在线视频精品| 欧美电影免费观看完整版| 亚洲专区一二三| 一本色道久久综合亚洲aⅴ蜜桃| 国产亚洲污的网站| 久久99这里只有精品| 欧美绝品在线观看成人午夜影视| 成人免费在线视频| 成人免费毛片高清视频| 2021中文字幕一区亚洲| 日韩avvvv在线播放| 欧美男男青年gay1069videost| 亚洲日本在线视频观看| av一本久道久久综合久久鬼色| 久久久91精品国产一区二区精品| 久久99精品国产91久久来源| 日韩午夜激情视频| 热久久国产精品| 日韩欧美第一区| 久久精品国产澳门| 欧美电影免费观看高清完整版| 人人狠狠综合久久亚洲| 日韩一级片在线观看| 蜜桃久久久久久| 精品国产免费一区二区三区香蕉| 麻豆91精品视频| 精品少妇一区二区三区在线播放| 蜜桃久久久久久| 日韩免费视频线观看| 国产一区高清在线| 国产亚洲一区二区三区四区| 国产成人aaa| 国产精品久久久久久久蜜臀 | 欧美老肥妇做.爰bbww视频| 午夜精彩视频在线观看不卡| 欧美精品日韩综合在线| 麻豆极品一区二区三区| 久久综合久久综合久久| 国产大陆a不卡| 1024成人网| 欧美做爰猛烈大尺度电影无法无天| 一区二区三区在线视频免费| 欧美日韩专区在线| 日本午夜一区二区| xnxx国产精品| 95精品视频在线| 香蕉影视欧美成人| 精品国产露脸精彩对白| 国产成人精品综合在线观看| 国产精品久久影院| 欧洲日韩一区二区三区| 玖玖九九国产精品| 国产精品乱人伦中文| 欧美综合一区二区| 毛片av一区二区三区| 中文字幕不卡在线| 欧美三区在线观看| 国产又黄又大久久| 亚洲美女区一区| 91精品一区二区三区久久久久久 | 国产精品1区2区3区在线观看| 精品一区二区三区在线播放| 色狠狠综合天天综合综合| 偷窥少妇高潮呻吟av久久免费| 欧美精品亚洲二区| 国产成人h网站| 亚洲成av人片| 欧美激情综合在线| 欧美日韩精品三区| 国产mv日韩mv欧美| 亚洲夂夂婷婷色拍ww47| 欧美xxxxx裸体时装秀| 不卡av电影在线播放| 视频在线在亚洲| 国产午夜精品理论片a级大结局 | 欧美丰满高潮xxxx喷水动漫| 久久成人18免费观看| 亚洲人成伊人成综合网小说| 日韩精品中文字幕在线不卡尤物 | 91香蕉视频在线| 久久99热这里只有精品| 亚洲乱码国产乱码精品精可以看| 91麻豆精品国产91久久久资源速度| 成人美女视频在线观看18| 石原莉奈在线亚洲三区| 中文字幕在线免费不卡| 欧美一区二区三区四区高清| thepron国产精品| 免费成人在线观看视频| 亚洲乱码中文字幕| 久久久久久久综合| 欧美二区三区的天堂| 99国产欧美另类久久久精品| 免费成人av在线| 一区二区三区高清不卡| 国产欧美日韩综合精品一区二区| 欧美浪妇xxxx高跟鞋交| 色婷婷久久综合| www.av精品| 国产成人免费视频网站| 另类专区欧美蜜桃臀第一页| 亚洲一区二区av电影| 国产精品成人免费在线| 精品1区2区在线观看| 欧美高清www午色夜在线视频| 91毛片在线观看| 成人午夜视频福利| 国产毛片一区二区| 麻豆精品久久精品色综合| 午夜成人在线视频| 一区二区三区91| 综合久久久久综合| 国产精品三级电影| 国产拍揄自揄精品视频麻豆| 日韩欧美专区在线| 欧美一级一级性生活免费录像| 欧美无砖砖区免费| 在线一区二区三区四区五区| 91免费观看在线| heyzo一本久久综合| 成人毛片在线观看| 成人aa视频在线观看| 盗摄精品av一区二区三区|