C# разница между форматом byte [] и char []? - PullRequest
0 голосов
/ 02 апреля 2020

Мне было интересно эти различия, так как у меня есть программа, которая запрашивает у меня байт [].

public static string DecryptTextFromFile(String FileName, byte[] Key, byte[] 
IV){}

введите описание изображения здесь

и я уже пробовал:

char[] key= { '9', 'D', '2', 'A', 'E'}; не выдает ошибку, но мне нужен байт []

и это:

byte[] key= { '9', 'D', '2', 'A', 'E'}; // но этот говорит, что Я использую символы символов, как их разместить в формате byte[]?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Вы можете инициализировать массив байтов, например:

byte[] key1 = new byte[] { 57, 68, 50, 65, 69 };

Или преобразовать из массива символов:

char[] keyChars = { '9', 'D', '2', 'A', 'E' };
var key2 = Encoding.ASCII.GetBytes(keyChars);
0 голосов
/ 02 апреля 2020

char и byte - это два разных типа, размер символа 16 бит и размер байта 8 бит; Чтобы представить символ, вам нужно преобразовать в байты.

Для этого вы можете использовать BitConverter

 char charValue = 'c';
 bytep[] bytes = BitConverter.GetBytes(charValue);

Для преобразования вашей строки из картинки вы можете использовать этот метод

static class HexStringConverter
{
    public static byte[] ToByteArray(String HexString)
    {
        int NumberChars = HexString.Length;
        byte[] bytes = new byte[NumberChars / 2];
        for (int i = 0; i < NumberChars; i += 2)
        {
            bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16);
        }
        return bytes;
    }
}

Надежда этот ответ поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...