用vb实现DES加解密算法(二)--加密(27) RetS(i * 4 + 3) = (S(i) And &H1) \ &H1 Next For i = 0 To 31 'P变换 CodeP(i) = RetS(P(i)) '产生L12,R12 R12(i) = L11(i) Xor CodeP(i) L12(i) = R11(i) Next '进行第13次迭代 For i = 0 To 47 CodeE(i) = R12(E(i)) '经过E变换扩充,由32位变为48位 CodeE(i) = CodeE(i) Xor K13(i) '与K13按位作不进位加法运算 Next '分8组 For i = 0 To 5 CodeS1(i) = CodeE(i) CodeS2(i) = CodeE(i + 6) CodeS3(i) = CodeE(i + 12) CodeS4(i) = CodeE(i + 18) CodeS5(i) = CodeE(i + 24) CodeS6(i) = CodeE(i + 30) CodeS7(i) = CodeE(i + 36) CodeS8(i) = CodeE(i + 42) Next 'S盒运算,得到8个数 S(0) = S1(CodeS1(5) + CodeS1(0) * 2, CodeS1(4) + CodeS1(3) * 2 + CodeS1(2) * 4 + CodeS1(1) * 8) S(1) = S2(CodeS2(5) + CodeS2(0) * 2, CodeS2(4) + CodeS2(3) * 2 + CodeS2(2) * 4 + CodeS2(1) * 8)