98 / 33 / 21
Регистрация: 17.09.2014
Сообщений: 1,497
|
|||||||||||
1 | |||||||||||
Как записать в byte большое число?04.01.2016, 23:53. Показов 3353. Ответов 6
Метки нет Все метки)
(
В общем первый блок в AES должен содержать длину всех шифруемых данных.
Шифруемый блок имеет длину 16 байт. byte - содержит значения от 0 до 255. Может можно разбить число на блоки? Ну например длина данных 243567755 байт. Что если создать
Далее записать в него длину и.
Прокатит так?
0
|
|
04.01.2016, 23:53 | |
Ответы с готовыми решениями:
6
Как правильно записать большое число Как записать большое число в виде строки a*b^n+c
Как записать в переменную большое количество текста? |
1391 / 1020 / 324
Регистрация: 28.07.2012
Сообщений: 2,809
|
||||||
05.01.2016, 01:07 | 2 | |||||
![]() Решение
Прокатит.
Но тут стоило догадаться, что размер __int64 равен 16 байтам. И можно просто скастовать указатель на __int64 к указателю на byte. Типа так:
Или подумать и прийти к выводу, что для AES не нужен никакой __int64, а достаточно просто byte.
1
|
98 / 33 / 21
Регистрация: 17.09.2014
Сообщений: 1,497
|
|||||||||||
05.01.2016, 01:23 [ТС] | 3 | ||||||||||
Так нельзя, мне массив нужен а не указатели(я вообще не знаю что это).
Я знаю, но ведь число 653456 больше чем допустимое в byte. Ну и мои познания в С++ скромны, поэтому предположил, что можно это реализовать таким способом... Я пытаюсь переделать код с JAVA на С++
Но думаю так же...
0
|
1391 / 1020 / 324
Регистрация: 28.07.2012
Сообщений: 2,809
|
||||||
05.01.2016, 03:18 | 4 | |||||
![]() Решение
А разница?
Да и вообще, вопрос в интерпретации. В unsigned __int64 влезет максимум число Если хочется больше, то берешь два unsigned __int64, туда уже влезет Твой AES вроде как должен работать с байтами, на этом завязаны все перемешивания и т.п., а ты зачем-то пытаешься работать сразу с блоком из 16 байт (А в памяти __int64 и есть блок из 16 байт).
1
|
166 / 69 / 17
Регистрация: 22.03.2011
Сообщений: 196
|
|
05.01.2016, 04:32 | 5 |
2
|
98 / 33 / 21
Регистрация: 17.09.2014
Сообщений: 1,497
|
|
05.01.2016, 06:26 [ТС] | 6 |
Не знаю. Не нашёл в инэте где по простому на пальцах объясняют зачем нужны звёздочки...
Просто с ними у меня постоянно то не работает, то ошибки... Это для примера, чтобы показать что число больше 255. На практике я не думаю что буду использовать текст длиннее 1.5 к символов. Но лучше подстраховаться. Я выбрал long long потому, что оно по количеству байт равное блоку. Я пытаюсь просто записать большое число в первый блок(который тоже должен быть зашифрован). Не по теме: Ну так учусь. Никто не умел раньше. Если в том плане, чтобы выбрать попроще задачу, то отвечу, уже делал, а тут сразу много всего... Что, не 128, а 64 бита(приставка указывает явно)? Ну перепутал, посмотрел не там, бывает... Не все же гениями рождаются... Добавлено через 4 минуты Погуглил, самое большое это unsigned long long из 8 байт ?
0
|
1391 / 1020 / 324
Регистрация: 28.07.2012
Сообщений: 2,809
|
|
05.01.2016, 09:51 | 7 |
1
|
05.01.2016, 09:51 | |
Помогаю со студенческими работами здесь
7
Как записать и прочитать int (4 byte) из char[]
Как преобразовать большое число в строку Как вычислить большое число в экспоненте ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |