|
用vb实现DES加解密算法(二)--加密(3) BinKey(i * 8 + 3) = (tempKey(i) And &H10) \ &H10 BinKey(i * 8 + 4) = (tempKey(i) And &H8) \ &H8 BinKey(i * 8 + 5) = (tempKey(i) And &H4) \ &H4 BinKey(i * 8 + 6) = (tempKey(i) And &H2) \ &H2 BinKey(i * 8 + 7) = (tempKey(i) And &H1) \ &H1 Next 'PC_1转换 For i = 0 To 55 KeyPC_1(i) = BinKey(PC_1(i)) Next '生成C0,D0 For i = 0 To 27 C0(i) = KeyPC_1(i) D0(i) = KeyPC_1(i + 28) Next '***************************************************K1 '生成C1,D1 For i = 0 To 26 C1(i) = C0(i + Lsi(1)) D1(i) = D0(i + Lsi(1)) Next C1(27) = C0(0) D1(27) = D0(0) '组合C1,D1成C_D For i = 0 To 27 C_D(i) = C1(i) C_D(i + 28) = D1(i) Next 'PC_2转换,生成K1 For i = 0 To 47 K1(i) = C_D(PC_2(i)) Next '***************************************************K2 '生成C2,D2 For i = 0 To 26 C2(i) = C1(i + Lsi(2)) D2(i) = D1(i + Lsi(2)) Next C2(27) = C1(0) D2(27) = D1(0) '组合C2,D2成C_D For i = 0 To 27 C_D(i) = C2(i) C_D(i + 28) = D2(i) Next 'PC_2转换,生成K2 For i = 0 To 47 K2(i) = C_D(PC_2(i)) Next '***************************************************K3 '生成C3,D3 For i = 0 To 25 C3(i) = C2(i + Lsi(3)) D3(i) = D2(i + Lsi(3)) Next C3(26) = C2(0) D3(26) = D2(0) C3(27) = C2(1) D3(27) = D2(1) '组合C3,D3成C_D For i = 0 To 27 C_D(i) = C3(i) C_D(i + 28) = D3(i) Next 'PC_2转换,生成K3 For i = 0 To 47 K3(i) = C_D(PC_2(i)) Next '***************************************************K4
|