1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
1

Декодировать байты (в base64) в просто байты

31.01.2016, 12:57. Показов 2167. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, нужно декодировать байты, которые зашифрованы в base64 в нормальные баты
вот код :
C#
1
2
3
4
5
6
7
8
9
 internal sbyte[] mSecret;
 
        public Token(JSONObject json)
        {
            string sSecret = "stroka";
            if (sSecret != null && sSecret.Length > 0)
            {
                this.mSecret = Convert.FromBase64String(sSecret.GetBytes()); // как вы понимаете, нужна альтернатива.                   //FromBase64String
            }
т.к mSecret это sbyte , то она выдает ошибку. Можете помочь ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2016, 12:57
Ответы с готовыми решениями:

Декодировать base64 и забросить в string
Собираю с сайта base64: SGVsbG8sIFdvcmxk (hello, World) Так вот, как этот SGVsbG8sIFdvcmxk...

Декодировать Base64 картинку созданную TotalCommander
взял картинку, закодировал ее через TotalCommander в Base64, потом раскодировал следующим кодом ...

Декодировать и закодировать MD5 (base64) hash
Нужно закодировать пароль. Есть пароль zeonefergma, в MD5 (base64) как его определяют многие сайты...

При кодировании в base64 русских букв не удается потом декодировать текст
Здравствуйте, подскажите пожалуйста как правильно закодировать строку в base64, знаю что с...

7
Эксперт .NET
17684 / 12870 / 3365
Регистрация: 17.09.2011
Сообщений: 21,134
31.01.2016, 13:01 2
Цитата Сообщение от vuasya Посмотреть сообщение
т.к mSecret это sbyte , то она выдает ошибку
А ему обязательно быть массивом sbyte? Отрицательные числа имеют какую-то смысловую нагрузку?
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
31.01.2016, 13:05  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
А ему обязательно быть массивом sbyte?
да. Я просто перевожу код с java, а как известно byte в java это sbyte в c#
Цитата Сообщение от kolorotur Посмотреть сообщение
Отрицательные числа имеют какую-то смысловую нагрузку?
вот тут не знаю (
0
Эксперт .NET
17684 / 12870 / 3365
Регистрация: 17.09.2011
Сообщений: 21,134
31.01.2016, 13:10 4
Цитата Сообщение от vuasya Посмотреть сообщение
byte в java это sbyte в c#
Там просто нет беззнаковых байтов. Но из этого не обязательно следует, что в данном случае знак важен.

Цитата Сообщение от vuasya Посмотреть сообщение
вот тут не знаю (
Ну там дальше по коду есть где-то проверка этих значений на отрицательные или какие-то математические операции с ними?
Если нет, то это можно считать атавизмом и заменить на обычный byte[].

Если все-таки нужно именно sbyte[], то делайте каст:
C#
1
this.mSecret = Convert.FromBase64String((byte[])(Array)sSecret.GetBytes());
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
31.01.2016, 14:15  [ТС] 5
Цитата Сообщение от kolorotur Посмотреть сообщение
Если все-таки нужно именно sbyte[], то делайте каст:

this.mSecret = Convert.FromBase64String((byte[])(Array)sSecret.GetBytes());
все равно дает ошибку "byte[] в string невозможно"

Цитата Сообщение от kolorotur Посмотреть сообщение
Ну там дальше по коду есть где-то проверка этих значений на отрицательные или какие-то математические операции с ними?
вродь нет. Единственное его применение в этой строке :
Delphi
1
SecretKeySpec signKey = new SecretKeySpec(this.mSecret, "HmacSHA1");
Кстати, не подскажите, как подключить библиотеку SecretKeySpec ? ведь в java она встроена, а в c# ее нет
0
Эксперт .NET
17684 / 12870 / 3365
Регистрация: 17.09.2011
Сообщений: 21,134
31.01.2016, 14:48 6
Цитата Сообщение от vuasya Посмотреть сообщение
все равно дает ошибку "byte[] в string невозможно"
А, там From, а не To.
Что находится в переменной sSecret?
Там, похоже, нужно наоборот: 64-base строку в массив байт, нет?

Цитата Сообщение от vuasya Посмотреть сообщение
вродь нет.
Ну и замените ее тогда на byte[].

Цитата Сообщение от vuasya Посмотреть сообщение
как подключить библиотеку SecretKeySpec ?
Никак, нужно искать аналог на шарпе.
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
31.01.2016, 15:10  [ТС] 7
Цитата Сообщение от kolorotur Посмотреть сообщение
Что находится в переменной sSecret?
там находится зашифрованный текст base64
Если юзать так :
C#
1
this.mSecret = Convert.ToBase64String((byte[])(Array)sSecret.GetBytes());
то говорит "неявное преобразование типа string в byte[]

А если
C#
1
this.mSecret = Convert.FromBase64String((byte[])(Array)sSecret.GetBytes());
то "Аргумент "1": преобразование типа из "byte[]" в "string" невозможно"
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
02.02.2016, 16:48  [ТС] 8
уже какой день мучаюсь, чет не получается (
0
02.02.2016, 16:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2016, 16:48
Помогаю со студенческими работами здесь

Байты в картинку )
Перевожу в байты Bitmap BM = new Bitmap(pictureBox1.Image); MS = new...

Стринги и байты
По нажатию на 1 кнопку OpenFileDialog qqq = new OpenFileDialog(); if...

Байты в биты
Здравствуйте коллеги! Подскажите пожалуйста,каким образом можно байт разложить на составляющие...

Байты в биты
Как перевести байты в биты, причем так, чтобы самому можно было выбирать, какие биты бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru