以下代码为Left(strEncrKey, 8)
提供了错误。错误说公共属性Left没有参数返回。
Public Function Encrypt(ByVal strText As String) As String
Dim strEncrKey As String = "welcome123"
Dim IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
Try
**Dim bykey() As Byte = System.Text.Encoding.UTF8.GetBytes(Left(strEncrKey, 8))**
Dim InputByteArray() As Byte = System.Text.Encoding.UTF8.GetBytes(strText)
Dim des As New DESCryptoServiceProvider
Dim ms As New MemoryStream
Dim cs As New CryptoStream(ms, des.CreateEncryptor(bykey, IV), CryptoStreamMode.Write)
cs.Write(InputByteArray, 0, InputByteArray.Length)
cs.FlushFinalBlock()
Return Convert.ToBase64String(ms.ToArray())
Catch ex As Exception
Return ex.Message
End Try
End Function
答案 0 :(得分:2)
此代码可能位于Form
内。好吧,Left
是该表单的属性和编译器的意思(即Me.Left
)。
要消除歧义,你必须使用Left
函数的完全限定名称 - 或者更好,根本不使用它(它已被弃用)。改为使用String
类方法:
Dim bykey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8))
请注意,我在类型声明中省略了括号和As …
。如果您在项目选项中指定了Option Strict
和Option Infer
,那么表示该类型是多余的,我高度推荐。