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

📄 dea.java.htm

📁 JAVA的加密源程序
💻 HTM
字号:
<html>/*Christoforos Pirillos @ Villanova University - May 1999based on code from the book "Java Network Programming" by Hughes*/package encryption;/**Provides the low-level bit-twiddling functions that are used by the DESclass*/public final class DEA {public static final long[] makeKeys (long key) {	long reduced = perm (key, keyReducePerm);	int l = (int) (reduced >> 28);	int r = (int) (reduced & 0xfffffff);	long[] keys =   new long[16];	for (int i = 0; i < 16; ++ i) 	   keys[i]  =  perm (rotate (l, r, keyRot[i]), keyCompressPerm);	return keys;}public static final long initialPerm (long x) { return perm (x, initPerm);}// This combines the expansion function, pbox and sbox// Based on optimizations by David A. Barrett// (barrett@asgard.boulder.Colorado.EDU)public static final int desFunc (int x, long k) {	int p = x >>> 27;	int q = (p & 3) << 4;	int r = x << 5; 	p |=  r; r = sBoxP[0][(int) ((k >> 42) ^ p) & 0x3f]; p >>>= 4; r |=   sBoxP[7][(int)   ((k  >> 0) ^ p) & 0x3f]; p >>>= 4; r |=   sBoxP[6][(int)   ((k  >> 6) ^ p) & 0x3f]; p >>>= 4; r |=   sBoxP[5][(int)   ((k  >> 12) ^ p) & 0x3f]; p >>>= 4; r |=   sBoxP[4][(int)   ((k  >> 18) ^ p) & 0x3f]; p >>>= 4; r |=   sBoxP[3][(int)   ((k  >> 24) ^ p) & 0x3f]; p >>>= 4; r |=   sBoxP[2][(int)   ((k  >> 30) ^ p) & 0x3f]; p >>>= 4; r |=   sBoxP[1][(int)   ((k  >> 36) ^ (p | q)) & 0x3f];  return r;}public static final long finalPerm (long x) { return perm (x, finPerm);}protected static final long perm (long k, int p[]) {	long s=0;	for (int i=0; i<p.length; ++i)		if ((k & (1L << p[i] )) !=0)			s |= 1L << i;	return s;}protected static final long rotate (int l, int r, int s) {	return ((long) (((l<<s) & 0xfffffff) | (l>>>(28-s))) << 28) |	 ((r<<s) & 0xfffffff) | (r>> (28-s));}protected static final int keyReducePerm[] = {	60,52,44,36,59,51,43,35,27,19,11,3,58,50,	42,34,26,18,10,2,57,49,41,33,25,17,9,1,	28,20,12,4,61,53,45,37,29,21,13,5,62,54,	46,38,30,22,14,6,63,55,47,39,31,23,15,7}; protected static final int keyCompressPerm[] = {	24, 27, 20, 6, 14, 10, 3, 22, 0, 17, 7, 12,	8, 23,  11, 5, 16, 26, 1, 9, 19, 25, 4, 15,	54, 43 ,36, 29, 49, 40, 48, 30, 52, 44, 37, 33, 	46, 35, 50, 41, 28, 53, 51, 55, 32, 45, 39, 42};protected  static final int keyRot[] = { 1,2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28};protected static final int initPerm[] = { 	57, 49, 41, 33 , 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 	61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7, 	56, 48, 40, 32 ,24, 16, 8, 0, 58, 50, 42, 34, 26, 18, 10, 2, 	60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6};protected  static final int finPerm[] = { 39,7,47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37,5,45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35,3,43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33,1,41, 9,  49, 17, 57, 25, 32, 0, 40,  8, 48, 16, 56, 24}; protected static final int sBoxP[][] = { {0x00808200, 	    0x00000000,  	0x00008000, 	    0x00808202, 0x00808002,        0x00008202,         0x00000002,    	    0x00008000, 0x00000200,        0x00808200,         0x00808202,         0x00000200, 0x00800202,        0x00808002,         0x00800000,         0x00000002, 0x00000202,        0x00800200,         0x00800200,         0x00008200, 0x00008200,        0x00808000,         0x00808000,         0x00800202, 0x00008002,        0x00800002,         0x00800002,         0x00008002, 0x00000000,        0x00000202,         0x00008202,         0x00800000, 0x00008000,        0x00808202,         0x00000002,         0x00808000, 0x00808200,        0x00800000,         0x00800000,         0x00000200, 0x00808002,        0x00008000,         0x00008200,         0x00800002, 0x00000200,        0x00000002,         0x00800202,         0x00008202, 0x00808202,        0x00008002,         0x00808000,         0x00800202, 0x00800002,        0x00000202,         0x00008202,         0x00808200, 0x00000202,        0x00800200,         0x00800200,         0x00000000, 0x00008002,        0x00008200,         0x00000000,         0x00808002 }, {0x40084010,         0x40004000,         0x00004000,         0x00084010, 0x00080000,        0x00000010,         0x40080010,         0x40004010, 0x40000010,        0x40084010,         0x40084000,         0x40000000, 0x40004000,        0x00080000,         0x00000010,         0x40080010, 0x00084000,        0x00080010,         0x40004010,         0x00000000, 0x40000000,        0x00004000,         0x00084010,         0x40080000, 0x00080010,        0x40000010,         0x00000000,         0x00084000, 0x00004010,        0x40084000,         0x40080000,         0x00004010, 0x00000000,        0x00084010,         0x40080010,         0x00080000, 0x40004010,        0x40080000,         0x40084000,         0x00004000, 0x40080000,        0x40004000,         0x00000010,         0x40084010, 0x00084010,        0x00000010,         0x00004000,         0x40000000, 0x00004010,        0x40084000,         0x00080000,         0x40000010, 0x00080010,        0x40004010,         0x40000010,         0x00080010, 0x00084000,        0x00000000,         0x40004000,         0x00004010, 0x40000000,        0x40080010,         0x40084010,         0x00084000 }, { 0x00000104,      0x04010100,         0x00000000,         0x04010004,          0x04000100, 0x00000000, 0x00010104, 0x04000100,          0x00010004, 0x04000004, 0x04000004, 0x00010000,          0x04010104, 0x00010004,  0x04010000,  0x00000104,          0x04000000, 0x00000004,  0x04010100,  0x00000100,          0x00010100, 0x04010000,  0x04010004,  0x00010104,          0x04000104, 0x00010100,  0x00010000,  0x04000104,          0x00000004, 0x04010104,  0x00000100,  0x04000000,          0x04010100, 0x04000000,  0x00010004,  0x00000104,          0x00010000, 0x04010100,  0x04000100,  0x00000000,          0x00000100, 0x00010004,  0x04010104,  0x04000100,          0x04000004, 0x00000100,  0x00000000,  0x04010004,          0x04000104, 0x00010000,  0x04000000,  0x04010104,          0x00000004, 0x00010104,  0x00010100,  0x04000004,          0x04010000, 0x04000104,  0x00000104,  0x04010000,          0x00010104, 0x00000004,  0x04010004,  0x00010100 },      {   0x80401000, 0x80001040,  0x80001040,  0x00000040,          0x00401040, 0x80400040,  0x80400000,  0x80001000,          0x00000000, 0x00401000,  0x00401000,  0x80401040,          0x80000040, 0x00000000,  0x00400040,  0x80400000,          0x80000000, 0x00001000,  0x00400000,  0x80401000,          0x00000040, 0x00400000,  0x80001000,  0x00001040,          0x80400040, 0x80000000,  0x00001040,  0x00400040,          0x00001000, 0x00401040,  0x80401040,  0x80000040,          0x00400040, 0x80400000,  0x00401000,  0x80401040,          0x80000040, 0x00000000,  0x00000000,  0x00401000,          0x00001040, 0x00400040,  0x80400040,  0x80000000,          0x80401000, 0x80001040,  0x80001040,  0x00000040,          0x80401040, 0x80000040,  0x80000000,  0x00001000,          0x80400000, 0x80001000,  0x00401040,  0x80400040,          0x80001000, 0x00001040,  0x00400000,  0x80401000,          0x00000040, 0x00400000,  0x00001000,  0x00401040 },        { 0x00000080, 0x01040080,  0x01040000,  0x21000080,          0x00040000, 0x00000080,  0x20000000,  0x01040000,          0x20040080, 0x00040000,  0x01000080,  0x20040080,          0x21000080, 0x21040000,  0x00040080,  0x20000000,          0x01000000, 0x20040000,  0x20040000,  0x00000000,          0x20000080, 0x21040080,  0x21040080,  0x01000080,          0x21040000, 0x20000080,  0x00000000,  0x21000000,          0x01040080, 0x01000000,  0x21000000,  0x00040080,          0x00040000, 0x21000080,  0x00000080,  0x01000000,          0x20000000, 0x01040000,  0x21000080,  0x20040080,          0x01000080, 0x20000000,  0x21040000,  0x01040080,          0x20040080, 0x00000080,  0x01000000,  0x21040000,          0x21040080, 0x00040080,  0x21000000,  0x21040080,          0x01040000, 0x00000000,  0x20040000,  0x21000000,          0x00040080, 0x01000080,  0x20000080,  0x00040000,          0x00000000, 0x20040000,  0x01040080,  0x20000080 },{ 0x10000008,  0x10200000,   0x00002000,   0x10202008,  0x10200000,  0x00000008,   0x10202008,   0x00200000,  0x10002000,  0x00202008,   0x00200000,   0x10000008,  0x00200008,  0x10002000,   0x10000000,   0x00002008,  0x00000000,  0x00200008,   0x10002008,   0x00002000,  0x00202000,  0x10002008,   0x00000008,   0x10200008,  0x10200008,  0x00000000,   0x00202008,   0x10202000,  0x00002008,  0x00202000,   0x10202000,   0x10000000,  0x10002000,  0x00000008,   0x10200008,   0x00202000,  0x10202008,  0x00200000,   0x00002008,   0x10000008,  0x00200000,  0x10002000,   0x10000000,   0x00002008,  0x10000008,  0x10202008,   0x00202000,   0x10200000,  0x00202008,  0x10202000,   0x00000000,   0x10200008,  0x00000008,  0x00002000,   0x10200000,   0x00202008,  0x00002000,  0x00200008,   0x10002008,   0x00000000,  0x10202000,  0x10000000,   0x00200008,   0x10002008 }, { 0x00100000,  0x02100001,   0x02000401,   0x00000000,  0x00000400,  0x02000401,   0x00100401,   0x02100400,  0x02100401,  0x00100000,   0x00000000,   0x02000001,  0x00000001,  0x02000000,   0x02100001,   0x00000401,  0x02000400,  0x00100401,   0x00100001,   0x02000400,  0x02000001,  0x02100000,   0x02100400,   0x00100001,  0x02100000,  0x00000400,   0x00000401,   0x02100401,  0x00100400,  0x00000001,   0x02000000,   0x00100400,  0x02000000,  0x00100400,   0x00100000,   0x02000401,  0x02000401,  0x02100001,   0x02100001,   0x00000001,  0x00100001,  0x02000000,   0x02000400,   0x00100000,  0x02100400,  0x00000401,   0x00100401,   0x02100400,  0x00000401,  0x02000001,   0x02100401,   0x02100000,  0x00100400,  0x00000000,   0x00000001,   0x02100401,  0x00000000,  0x00100401,   0x02100000,   0x00000400,  0x02000001,  0x02000400,   0x00000400,   0x00100001 },  { 0x08000820,  0x00000800,   0x00020000,   0x08020820,  0x08000000,  0x08000820,   0x00000020,   0x08000000,  0x00020020,  0x08020000,   0x08020820,   0x00020800,  0x08020800,  0x00020820,   0x00000800,   0x00000020,  0x08020000,  0x08000020,   0x08000800,   0x00000820,  0x00020800,  0x00020020,   0x08020020,   0x08020800,  0x00000820,  0x00000000,   0x00000000,   0x08020020,  0x08000020,  0x08000800,   0x00020820,   0x00020000,  0x00020820,  0x00020000,   0x08020800,   0x00000800,  0x00000020,  0x08020020,   0x00000800,   0x00020820,  0x08000800,  0x00000020,   0x08000020,   0x08020000,  0x08020020,  0x08000000,   0x00020000,   0x08000820,  0x00000000,  0x08020820,   0x00020020,   0x08000020,  0x08020000,  0x08000800,   0x08000820,   0x00000000,  0x08020820,  0x00020800,   0x00020800,   0x00000820,  0x00000820,  0x00020020,   0x08000000,   0x08020800 }};} /* end of class DEA*/

⌨️ 快捷键说明

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