1

我需要在 VBA 中加密身份验证信息(字符串),然后在 C#(WCF 服务)中正确解密它们。

我们并不太关心所使用的加密类型或强度,只是解密必须正确生成原始文本。

任何人都可以建议我如何解决这个问题,或者指向我在 VBA 和 C# 中实现的代码块以实现我需要做的事情?

提前谢谢了

4

1 回答 1

1

好的,我很肯定你可以使用它。我将它用于 VBA,但是,在 vb.net 中使用它很简单,并且距离转换为 C# 仅一步之遥。我在这里得到了代码和解释: 链接到谁构建了 我只是将它用于 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
于 2013-06-21T19:10:15.340 回答