|
用vb实现DES加解密算法(二)--加密(7) 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 '加密过程 '依次取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 BinCode(i * 8 + 7) = (tempCode(i) And &H1) \ &H1 Next 'IP置换 For i = 0 To 63 CodeIP(i) = BinCode(IP(i)) Next '分段 For i = 0 To 31 L0(i) = CodeIP(i) R0(i) = CodeIP(i + 32) Next '进行第一次迭代 For i = 0 To 47 CodeE(i) = R0(E(i)) '经过E变换扩充,由32位变为48位
|