2008-09-29 5 views
0

J'ai la fonction ci-dessous ENCRYPT.Comment convertir un octet en une chaîne dans vb.net?

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 

Comment puis-je voir la valeur en octets du texte?

Répondre

2

pas à 100% sûr de ce que vous demandez, si vous voulez afficher votre crypté tableau d'octets comme une chaîne, alors je dirais, ne le faites pas comme votre chaîne ne sera pas "chaîne" de données, il sera encryted octets et ne sera pas affichable (généralement)

si vous demandez comment puis-je voir les valeurs d'octets comme une chaîne ... à savoir 129,45,24,67 etc alors (en supposant .net 3,5)

string.Join(",", byteArray.Select(b => b.ToString()).ToArray()); 

Et si vous demandez au sujet de la conversion de votre retour décryptées tableau d'octets, alors vous devez utiliser la même classe d'encodage que vous avez utilisé pour créer le tableau d'octets d'origine, dans votre cas, la classe de codage UTF8.

Questions connexes