dim j as integer
'取密钥的前8字节
tempkey = strconv(skey, vbfromunicode)
redim preserve tempkey(7)
for i = 0 to 7
binkey(i * 8 + 0) = (tempkey(i) and &h80) \ &h80
binkey(i * 8 + 1) = (tempkey(i) and &h40) \ &h40
binkey(i * 8 + 2) = (tempkey(i) and &h20) \ &h20
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
'生成c4,d4
for i = 0 to 25
c4(i) = c3(i + lsi(4))
d4(i) = d3(i + lsi(4))
next
c4(26) = c3(0)
d4(26) = d3(0)
c4(27) = c3(1)
d4(27) = d3(1)
'组合c4,d4成c_d
for i = 0 to 27
c_d(i) = c4(i)
c_d(i + 28) = d4(i)
next
'pc_2转换,生成k4
for i = 0 to 47