如何在vb.net中将字节转换为字符串?
时间:2020-03-06 14:51:36 来源:igfitidea点击:
我具有ENCRYPT下面的功能。
Public Function Encrypt(ByVal plainText As String) As Byte() Dim key() As Byte = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24} Dim iv() As Byte = {65, 110, 68, 26, 69, 178, 200, 219} ' Declare a UTF8Encoding object so we may use the GetByte ' method to transform the plainText into a Byte array. Dim utf8encoder As UTF8Encoding = New UTF8Encoding() Dim inputInBytes() As Byte = utf8encoder.GetBytes(plainText) ' Create a new TripleDES service provider Dim tdesProvider As TripleDESCryptoServiceProvider = New TripleDESCryptoServiceProvider() ' The ICryptTransform interface uses the TripleDES ' crypt provider along with encryption key and init vector ' information Dim cryptoTransform As ICryptoTransform = tdesProvider.CreateEncryptor(Me.key, Me.iv) ' All cryptographic functions need a stream to output the ' encrypted information. Here we declare a memory stream ' for this purpose. Dim encryptedStream As MemoryStream = New MemoryStream() Dim cryptStream As CryptoStream = New CryptoStream(encryptedStream, cryptoTransform, CryptoStreamMode.Write) ' Write the encrypted information to the stream. Flush the information ' when done to ensure everything is out of the buffer. cryptStream.Write(inputInBytes, 0, inputInBytes.Length) cryptStream.FlushFinalBlock() encryptedStream.Position = 0 ' Read the stream back into a Byte array and return it to the calling ' method. Dim result(encryptedStream.Length - 1) As Byte encryptedStream.Read(result, 0, encryptedStream.Length) cryptStream.Close() Return result End Function
我如何查看文本的字节值?
解决方案
我们可以使用Encoding类。
要将字节数组转换为字符串,可以使用Encoding.GetString方法
UTF8有一个特殊版本:UTF8Encoding.GetString
如果我们想将加密的字节数组显示为字符串,则不能100%确定要求,那么我会说,不要那样做,因为字符串将不会是"字符串"数据,而是加密的字节并赢得了无法显示(通常)
如果我们问我如何才能将字节值视为字符串...即129,45,24,67等(假设.net 3.5)
string.Join(",", byteArray.Select(b => b.ToString()).ToArray());
并且,如果我们要转换回解密的字节数组,则需要使用与创建原始字节数组相同的编码类,在这种情况下,使用的是UTF8编码类。