我需要在VBA中加密身份验证信息(字符串),然后在C#(WCF服务)中正确解密它们。
我们并不过分担心所使用的加密类型或强度,只是解密必须正确生成原始文本。
任何人都可以告诉我如何解决这个问题,或者指出代码块来实现VBA&在C#中实现我需要做的事情?
非常感谢提前
答案 0 :(得分:1)
好的,我很肯定你可以用它。 我将它用于VBA,但是,它很容易在vb.net中使用,并且距离转换为C#只有一步之遥。 我在这里得到了代码和解释: link to who built the function 我只是用它来做VBA。我在vb.net中使用了大量的VBA函数,并且已经将足够的vb.net转换为c#,以便知道这可以在c#中使用。
Function RunRC4(sMessage, strKey)
Dim kLen, x, y, i, j, temp
Dim s(256), k(256)
'Init keystream'
klen = Len(strKey)
For i = 0 To 255
s(i) = i
k(i) = Asc(Mid(strKey, (i Mod klen) + 1, 1))
Next
j = 0
For i = 0 To 255
j = (j + k(i) + s(i)) Mod 255
temp = s(i)
s(i) = s(j)
s(j) = temp
Next
'Drop n bytes from keystream'
x = 0
y = 0
For i = 1 To 3072
x = (x + 1) Mod 255
y = (y + s(x)) Mod 255
temp = s(x)
s(x) = s(y)
s(y) = temp
Next
'Encode/Decode'
For i = 1 To Len(sMessage)
x = (x + 1) Mod 255
y = (y + s(x)) Mod 255
temp = s(x)
s(x) = s(y)
s(y) = temp
RunRC4 = RunRC4 & Chr(s((s(x) + s(y)) Mod 255) Xor Asc(Mid(sMessage, i, 1)))
Next
End Function