java delphi des加密解密_Delphi小技巧(五)——Des加密算法(上)

//好东西呀,喜欢~~~~//

unit DESCrypt;

interface

uses

SysUtils;

function EnCrypt(aStr: string;

acKey: string ): string;

//加密字符串-------------------------------

function DeCrypt(aStr: string; acKey: string ): string;

//解密字符串-------------------------------

implementation

type

TByte32 = array[1..32] of Byte;

TSData = array[0..63] of

Byte;

TBlock = array[0..7] of Byte;

const

SA1: TSData =

(1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0,

0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1,

0, 0, 1, 1,

1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1,

0, 1, 1, 0, 0, 1);

SA2: TSData =

(1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1,

0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0,

0, 1, 0, 1,

1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0,

0, 1, 0, 0, 1, 1);

SA3: TSData =

(1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,

1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0,

1, 0, 0, 1,

1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1,

1, 0, 1, 0, 0, 1);

SA4: TSData =

(0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1,

1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,

1, 0, 1, 0,

1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0,

0, 1, 1, 0, 0, 1);

SA5: TSData =

(0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1,

1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0,

0, 0, 0, 1,

1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1,

0, 1, 1, 0, 0, 0);

SA6: TSData =

(1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1,

1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1,

1, 1, 1, 0,

0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1,

0, 0, 0, 0, 1, 1);

SA7: TSData =

(0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,

1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,

0, 0, 1, 1,

1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0,

0, 1, 1, 0, 0, 1);

SA8: TSData =

(1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0,

0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0,

0, 1, 0, 0,

1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1,

1, 0, 0, 0, 0, 1);

SB1: TSData =

(1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1,

0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0,

1, 0, 1, 0,

1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0,

0, 1, 0, 0, 1, 1);

SB2: TSData =

(1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,

0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1,

0, 1, 1, 0,

0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1,

1, 1, 0, 1, 1, 0);

SB3: TSData =

(0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0,

1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0,

1, 1, 1, 0,

0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1,

1, 0, 0, 1, 0, 1);

SB4: TSData =

(1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,

1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0,

0, 1, 0, 0,

1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1,

1, 0, 1, 1, 0, 1);

SB5: TSData =

(0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,

1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1,

1, 0, 0, 0,

0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1,

0, 0, 0, 1, 1, 0);

SB6: TSData =

(1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0,

0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0,

0, 1, 1, 1,

0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,

0, 1, 1, 0, 0, 1);

SB7: TSData =

(1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,

1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1,

0, 1, 0, 1,

1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1,

0, 1, 1, 0, 0, 1);

SB8: TSData =

(1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,

0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,

1, 0, 1, 0,

0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1,

0, 0, 0, 1, 1, 0);

SC1: TSData =

(1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1,

0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0,

0, 0, 1, 0,

0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1,

1, 1, 1, 0, 1, 0);

SC2: TSData =

(1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1,

1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0,

0, 1, 1, 1,

1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1,

1, 0, 0, 0, 1, 0);

SC3: TSData =

(1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0,

0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0,

0, 1, 0, 0,

0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1,

1, 1, 1, 0, 1, 0);

SC4: TSData =

(1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1,

0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0,

1, 1, 0, 0,

0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,

0, 1, 0, 1, 1, 1);

SC5: TSData =

(1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0,

1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1,

0, 1, 0, 1,

1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1,

0, 0, 1, 0, 0, 1);

SC6: TSData =

(0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1,

1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0,

0, 1, 1, 0,

1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1,

0, 1, 1, 0, 0, 0);

SC7: TSData =

(0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0,

0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1,

0, 0, 1, 0,

0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0,

0, 1, 1, 1, 1, 0);

SC8: TSData =

(0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1,

0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1,

1, 1, 0, 0,

0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0,

0, 0, 1, 0, 1, 1);

SD1: TSData =

(0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1,

0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,

0, 1, 0, 0,

1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1,

1, 0, 0, 0, 0, 1);

SD2: TSData =

(1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0,

1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1,

0, 0, 1, 1,

0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0,

1, 0, 0, 1, 0, 1);

SD3: TSData =

(0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0,

1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1,

1, 0, 0, 1,

0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1,

0, 1, 1, 1, 0, 0);

SD4: TSData =

(1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1,

1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1,

0, 0, 1, 0,

0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0,

1, 1, 0, 1, 0, 0);

SD5: TSData =

(0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1,

0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0,

0, 0, 1, 1,

0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1,

0, 1, 0, 0, 1, 1);

SD6: TSData =

(0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1,

0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0,

1, 0, 1, 1,

0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0,

1, 1, 0, 0, 0, 1);

SD7: TSData =

(0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1,

1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0,

1, 0, 1, 1,

0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1,

0, 1, 0, 0, 1, 0);

SD8: TSData =

(1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1,

1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0,

1, 1, 0, 1,

1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0,

1, 0, 1, 1, 0, 1);

Sc:

array[1..16, 1..48] of Byte =

((15, 18, 12, 25, 2, 6, 4, 1, 16, 7, 22, 11, 24,

20, 13, 5, 27, 9, 17, 8, 28, 21, 14, 3,

42, 53, 32,

38, 48, 56, 31, 41, 52, 46, 34, 49, 45, 50, 40, 29, 35, 54, 47, 43,

51, 37, 30, 33),

(16, 19, 13,

26, 3, 7, 5, 2, 17, 8, 23, 12, 25, 21, 14, 6, 28, 10, 18, 9, 1, 22,

15, 4,

43, 54, 33,

39, 49, 29, 32, 42, 53, 47, 35, 50, 46, 51, 41, 30, 36, 55, 48, 44,

52, 38, 31, 34),

(18, 21, 15,

28, 5, 9, 7, 4, 19, 10, 25, 14, 27, 23, 16, 8, 2, 12, 20, 11, 3,

24, 17, 6,

45, 56, 35,

41, 51, 31, 34, 44, 55, 49, 37, 52, 48, 53, 43, 32, 38, 29, 50, 46,

54, 40, 33, 36),

(20, 23, 17,

2, 7, 11, 9, 6, 21, 12, 27, 16, 1, 25, 18, 10, 4, 14, 22, 13, 5,

26, 19, 8,

47, 30, 37,

43, 53, 33, 36, 46, 29, 51, 39, 54, 50, 55, 45, 34, 40, 31, 52, 48,

56, 42, 35, 38),

(22, 25, 19,

4, 9, 13, 11, 8, 23, 14, 1, 18, 3, 27, 20, 12, 6, 16, 24, 15, 7,

28, 21, 10,

49, 32, 39,

45, 55, 35, 38, 48, 31, 53, 41, 56, 52, 29, 47, 36, 42, 33, 54, 50,

30, 44, 37, 40),

(24, 27, 21,

6, 11, 15, 13, 10, 25, 16, 3, 20, 5, 1, 22, 14, 8, 18, 26, 17, 9,

2, 23, 12,

51, 34, 41,

47, 29, 37, 40, 50, 33, 55, 43, 30, 54, 31, 49, 38, 44, 35, 56, 52,

32, 46, 39, 42),

(26, 1, 23,

8, 13, 17, 15, 12, 27, 18, 5, 22, 7, 3, 24, 16, 10, 20, 28, 19, 11,

4, 25, 14,

53, 36, 43,

49, 31, 39, 42, 52, 35, 29, 45, 32, 56, 33, 51, 40, 46, 37, 30, 54,

34, 48, 41, 44),

(28, 3, 25,

10, 15, 19, 17, 14, 1, 20, 7, 24, 9, 5, 26, 18, 12, 22, 2, 21, 13,

6, 27, 16,

55, 38, 45,

51, 33, 41, 44, 54, 37, 31, 47, 34, 30, 35, 53, 42, 48, 39, 32, 56,

36, 50, 43, 46),

(1, 4, 26,

11, 16, 20, 18, 15, 2, 21, 8, 25, 10, 6, 27, 19, 13, 23, 3, 22, 14,

7, 28, 17,

56, 39, 46,

52, 34, 42, 45, 55, 38, 32, 48, 35, 31, 36, 54, 43, 49, 40, 33, 29,

37, 51, 44, 47),

(3, 6, 28,

13, 18, 22, 20, 17, 4, 23, 10, 27, 12, 8, 1, 21, 15, 25, 5, 24, 16,

9, 2, 19,

30, 41, 48,

54, 36, 44, 47, 29, 40, 34, 50, 37, 33, 38, 56, 45, 51, 42, 35, 31,

39, 53, 46, 49),

(5, 8, 2,

15, 20, 24, 22, 19, 6, 25, 12, 1, 14, 10, 3, 23, 17, 27, 7, 26, 18,

11, 4, 21,

32, 43, 50,

56, 38, 46, 49, 31, 42, 36, 52, 39, 35, 40, 30, 47, 53, 44, 37, 33,

41, 55, 48, 51),

(7, 10, 4,

17, 22, 26, 24, 21, 8, 27, 14, 3, 16, 12, 5, 25, 19, 1, 9, 28, 20,

13, 6, 23,

34, 45, 52,

30, 40, 48, 51, 33, 44, 38, 54, 41, 37, 42, 32, 49, 55, 46, 39, 35,

43, 29, 50, 53),

(9, 12, 6,

19, 24, 28, 26, 23, 10, 1, 16, 5, 18, 14, 7, 27, 21, 3, 11, 2, 22,

15, 8, 25,

36, 47, 54,

32, 42, 50, 53, 35, 46, 40, 56, 43, 39, 44, 34, 51, 29, 48, 41, 37,

45, 31, 52, 55),

(11, 14, 8,

21, 26, 2, 28, 25, 12, 3, 18, 7, 20, 16, 9, 1, 23, 5, 13, 4, 24,

17, 10, 27,

38, 49, 56,

34, 44, 52, 55, 37, 48, 42, 30, 45, 41, 46, 36, 53, 31, 50, 43, 39,

47, 33, 54, 29),

(13, 16, 10,

23, 28, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26,

19, 12, 1,

40, 51, 30,

36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41,

49, 35, 56, 31),

(14, 17, 11,

24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27,

20, 13, 2,

41, 52, 31,

37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42,

50, 36, 29, 32));

var

G: array[1..16, 1..48] of Byte;

L, R, F: TByte32;

C: array[1..56] of Byte;

procedure DES_Init(Key:

TBlock; FCode: Boolean);

var

n, h: Byte;

begin

C[1] := Ord(Key[7] and 128

> 0); C[29] := Ord(Key[7] and 2 > 0);

C[2] := Ord(Key[6] and 128

> 0); C[30] := Ord(Key[6] and 2 > 0);

C[3] := Ord(Key[5] and 128

> 0); C[31] := Ord(Key[5] and 2 > 0);

C[4] := Ord(Key[4] and 128

> 0); C[32] := Ord(Key[4] and 2 > 0);

C[5] := Ord(Key[3] and 128

> 0); C[33] := Ord(Key[3] and 2 > 0);

C[6] := Ord(Key[2] and 128

> 0); C[34] := Ord(Key[2] and 2 > 0);

C[7] := Ord(Key[1] and 128

> 0); C[35] := Ord(Key[1] and 2 > 0);

C[8] := Ord(Key[0] and 128

> 0); C[36] := Ord(Key[0] and 2 > 0);

C[9] := Ord(Key[7] and 64 >

0); C[37] := Ord(Key[7] and 4 > 0);

C[10] := Ord(Key[6] and 64 >

0); C[38] := Ord(Key[6] and 4 > 0);

C[11] := Ord(Key[5] and 64 >

0); C[39] := Ord(Key[5] and 4 > 0);

C[12] := Ord(Key[4] and 64 >

0); C[40] := Ord(Key[4] and 4 > 0);

C[13] := Ord(Key[3] and 64 >

0); C[41] := Ord(Key[3] and 4 > 0);

C[14] := Ord(Key[2] and 64 >

0); C[42] := Ord(Key[2] and 4 > 0);

C[15] := Ord(Key[1] and 64 >

0); C[43] := Ord(Key[1] and 4 > 0);

C[16] := Ord(Key[0] and 64 >

0); C[44] := Ord(Key[0] and 4 > 0);

C[17] :=

Ord(Key[7] and 32 > 0); C[45] := Ord(Key[7]

and 8 > 0);

C[18] := Ord(Key[6] and 32 >

0); C[46] := Ord(Key[6] and 8 > 0);

C[19] := Ord(Key[5] and 32 >

0); C[47] := Ord(Key[5] and 8 > 0);

C[20] := Ord(Key[4] and 32 >

0); C[48] := Ord(Key[4] and 8 > 0);

C[21] := Ord(Key[3] and 32 >

0); C[49] := Ord(Key[3] and 8 > 0);

C[22] := Ord(Key[2] and 32 >

0); C[50] := Ord(Key[2] and 8 > 0);

C[23] := Ord(Key[1] and 32 >

0); C[51] := Ord(Key[1] and 8 > 0);

C[24] := Ord(Key[0] and 32 >

0); C[52] := Ord(Key[0] and 8 > 0);

C[25] :=

Ord(Key[7] and 16 > 0); C[53] := Ord(Key[3]

and 16 > 0);

C[26] := Ord(Key[6] and 16 >

0); C[54] := Ord(Key[2] and 16 > 0);

C[27] := Ord(Key[5] and 16 >

0); C[55] := Ord(Key[1] and 16 > 0);

C[28] := Ord(Key[4] and 16 >

0); C[56] := Ord(Key[0] and 16 >

0);

if FCode

then

begin

for n := 1

to 16 do

begin

for h := 1 to 48 do

begin

G[n, h] := C[Sc[n, h]];

end;

end;

end

else

begin

for n := 1

to 16 do

begin

for h := 1 to 48 do

begin

G[17 - n, h] := C[Sc[n, h]];

end;

end;

end;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi 7和Java是两种不同的编程语言,它们具有不同的工作原理和语法,因此在进行AES加密解密和相互转换时需要特定的步骤。 1. Delphi 7的AES加密解密: - Delphi 7可以使用第三方库来实现AES加密解密,例如DCPCrypt或DelphiEncryptionCompendium等。 - 使用这些库,你可以在Delphi 7中调用AES加密和解密方法来处理需要加密或解密的数据。 - 对于加密操作,你需要提供明文,密钥和加密模式等参数。对于解密操作,你需要提供密文,密钥和解密模式等参数。 2. Delphi 7到Java的转换: - 在将Delphi 7中的AES加密解密逻辑转换到Java时,你需要使用Java的加密类库,例如Java Cryptography Extension(JCE)。 - 在Java中,你可以使用javax.crypto包中的Cipher类来实现AES加密解密操作。 - 你需要提供相应的参数,例如密钥,加密算法和填充模式等来执行加密和解密操作。 3. JavaDelphi 7的转换: - 在将Java中的AES加密解密逻辑转换到Delphi 7时,你需要使用Delphi 7的加密类库,如前面提到的DCPCrypt或DelphiEncryptionCompendium等。 - 你可以使用对应的加密方法和相应的参数(如密钥和加密算法等)来执行加密解密操作。 - 确保在转换时,密钥和其他相关参数的格式和类型是一致的,以便正确处理数据。 总之,要在Delphi 7和Java之间实现AES加密解密的互转,你需要使用每种语言中的加密库并提供相应的参数。这样可以确保在两种语言之间正确执行加密解密操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值