|
用vb实现DES加解密算法(三)--解密(11) '***************************************************K16 '生成C16,D16 For i = 0 To 26 C16(i) = C15(i + Lsi(16)) D16(i) = D15(i + Lsi(16)) Next C16(27) = C15(0) D16(27) = D15(0) '组合C16,D16成C_D For i = 0 To 27 C_D(i) = C16(i) C_D(i + 28) = D16(i) Next 'PC_2转换,生成K16 For i = 0 To 47 K16(i) = C_D(PC_2(i)) Next '************************************************************************************** '加密过程 '将明文位数扩展为8的倍数 If (UBound(sCode) + 1) Mod 8 > 0 Then ReDim Preserve sCode(((UBound(sCode) + 1) \ 8 + 1) * 8 - 1) '定义返回密文长度 ReDim bReturn(UBound(sCode)) For j = 0 To UBound(sCode) Step 8 CopyMemory tempCode(0), sCode(j), 8 For i = 0 To 7 BinCode(i * 8 + 0) = (tempCode(i) And &H80) \ &H80 BinCode(i * 8 + 1) = (tempCode(i) And &H40) \ &H40 BinCode(i * 8 + 2) = (tempCode(i) And &H20) \ &H20 BinCode(i * 8 + 3) = (tempCode(i) And &H10) \ &H10 BinCode(i * 8 + 4) = (tempCode(i) And &H8) \ &H8 BinCode(i * 8 + 5) = (tempCode(i) And &H4) \ &H4 BinCode(i * 8 + 6) = (tempCode(i) And &H2) \ &H2
|