下面给出了加密字符串的程序。 我从下面的链接中获取了此代码并转换为vb.net。 http://www.eggheadcafe.com/tutorials/csharp/8b53894c-a889-4914-8c46-122980cc44ae/simple-xor-encryption.aspx。这将使用简单的xor加密转换字符串。
Namespace SimpleXOREncryption
Public NotInheritable Class EncryptorDecryptor
Private Sub New()
End Sub
Public Shared key As Integer = 129
Public Shared Function EncryptDecrypt(ByVal textToEncrypt As String) As String
Dim inSb As New StringBuilder(textToEncrypt)
Dim outSb As New StringBuilder(textToEncrypt.Length)
Dim c As Char
For i As Integer = 0 To textToEncrypt.Length - 1
c = inSb(i)
c = ChrW(c Xor key)
outSb.Append(c)
Next
Return outSb.ToString()
End Function
End Class
End Namespace
我得到错误
“operator'xor'未定义类型'char'和'integer'”
我犯了错误?
答案 0 :(得分:4)
基本上,VB不允许Char
和Integer
之间的Xor
,正如编译器告诉你的那样。 C#编译器自动将char
提升为int
,但VB编译器不会这样做(至少在这种情况下)。您需要首先明确地将字符转换为整数:
c = ChrW(AscW(c) Xor key)
我强烈建议您不要对任何生产项目使用此“加密”(也称为混淆)。 .NET内置了大量加密算法 - 为什么不使用其中一种呢?注意上述方法的警告也不总是给出有效的XML字符。哎呀,它可以产生基本上无效的字符串,因为包含代理对的“一半”等。你应该对任何将字符数据视为任意数字的事情感到紧张。