- ''''''''''''''''''''''''''''''''''''''
- ' Solution Manager Key 生成器 '
- '复制本文档,存为 SolManKeyGen.vbs '
- ' 执行 '
- ''''''''''''''''''''''''''''''''''''''
- '-------------------------------------------------------
- Dim SIDs,SNs,SERVs,msg,ENDs,KEYs
- msg="系统标识 (3位)"
- SIDs=InputBox(msg,"Solution Manager Key 生成器")
- msg="系统编号 (2位)"
- SNs=InputBox(msg,"Solution Manager Key 生成器")
- msg="主机名(最多15位)"
- SERVs=InputBox(msg,"Solution Manager Key 生成器")
- KEYs=SolManKeyGen(SIDs,SERVs)
- msg="Solution Manager Key"
- ENDs=InputBox(msg,"Solution Manager Key 生成器",KEYs)
- '-------------------------------------------------------
- Function SolManKeyGen(SIDst,SNst,SERVst)
- Dim SIDSNhex(5)
- Dim SERVhex(15)
- Dim reshex(5)
- SIDSNstr = UCase(SIDst) + UCase(SNst)
- SERVstr = UCase(SERVst)
- For arrcnt = 1 To 5
- SIDSNhex(arrcnt) = Asc(Mid(SIDSNstr,arrcnt,1))
- Next
- For arrcnt = 1 To Len(SERVstr)
- SERVhex(arrcnt) = Asc(Mid(SERVstr,1))
- Next
- For arrcnt = Len(SERVstr) + 1 To 15
- SERVhex(arrcnt) = 0
- Next
- If (Len(SERVstr) > 0) Then
- If (Len(SERVstr) < 5) Then
- For arrcnt = Len(SERVstr) + 1 To 5
- SERVhex(arrcnt) = Asc(" ")
- Next
- End If
- End If
- If (Len(SERVstr) > 5) Then
- If (Len(SERVstr) < 10) Then
- For arrcnt = Len(SERVstr) + 1 To 10
- SERVhex(arrcnt) = Asc(" ")
- Next
- End If
- End If
- If (Len(SERVstr) > 10) Then
- If (Len(SERVstr) < 15) Then
- For arrcnt = Len(SERVstr) + 1 To 15
- SERVhex(arrcnt) = Asc(" ")
- Next
- End If
- End If
- For arrcnt = 1 To 5
- reshex(arrcnt) = ((((0 Xor SIDSNhex(arrcnt)) Xor SERVhex(arrcnt)) Xor SERVhex(arrcnt + 5)) Xor SERVhex(arrcnt + 10))
- Next
- reshex(1) = reshex(1) Xor 84 Xor 0
- reshex(2) = reshex(2) Xor 131 Xor 11
- reshex(3) = reshex(3) Xor 194 Xor 46
- reshex(4) = reshex(4) Xor 52 Xor 105
- reshex(5) = reshex(5) Xor 119 Xor 188
- hexstr = "0123456789ABCDEF"
- resstr = ""
- For arrcnt = 1 To 5
- hihex = reshex(arrcnt) \ 16
- lohex = reshex(arrcnt) Mod 16
- resstr = resstr + Mid(hexstr,hihex + 1,1) + Mid(hexstr,lohex + 1,1)
- Next
- SolManKeyGen = resstr
- End Function