Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
пытаюсь просто проверить как работает шифрование-дешифрование код ТЕСТОВОЙ функции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. посылаю туда Код: plaintext 1. в ответ галиматья чередующаяся с дешифрованным текстом (( понимаю что ошибка где то в преобразовании типов, но где понять не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 12:28 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverin Зачем std::string и basic_stringstream? Тут достаточно Код: plaintext 1. 2. Там у Вас string копируется из stringstream. Зачем данные туда-сюда гонять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 16:12 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
smaldТам у Вас string копируется из stringstream. Зачем данные туда-сюда гонять? это для примера, stringstream вообще нужен, чтобы перегонять hex<->unsigned char* в цикле без использования буферов. вообщем то я пробовал и вариант Код: plaintext 1. 2. 3. при этом почему то в outBuff все равно появляются неверный символы вперемешку с правильными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 18:07 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverin Код: plaintext 1. 2. 3. ошибся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 18:20 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverinпри этом почему то в outBuff все равно появляются неверный символы вперемешку с правильными. Зачем всё время копировать? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 19:33 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
А если серьёзно, хочется криптотойких режимов, вроде CBC, то перед декриптом нужно закрыть прошлую сессию, и начать новую. И ещё, желательно, выровнять шифрумый буфер до кратности размеру блока для алгоритма, 16 байт для AES. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2014, 15:45 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
smald, получается флаг GCRY_CIPHER_CBC_CTS не работает!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 13:28 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverin, при дополнении до кратности тоже не работает, попробую шифровать только блоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 14:47 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverin получается флаг GCRY_CIPHER_CBC_CTS не работает!? Последний раз, когда применял (не помню уже точно) флаг не работал. Были сообщения по этому поводу в багтрекере проекта. Равнял буфер вручную. Сейчас набросал-всё работает нормально. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 18:55 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
smald, у меня в дебиане Пакет: libgcrypt11-dev Версия: 1.5.0-5+deb7u1 не то что бы не работает у меня - просто выполняю скрипт - то работает чисто, то мусор после шифрования-дешифрованиях появляется, а откуда он берется что то не пойму. разбираюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 07:14 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
похоже нашел я в чем ошибка, нельзя передавать в gcry_cipher_encrypt/gcry_cipher_decrypt в параметре источника вот такие штуки buff.str().c_str() или buff.c_str(), т.е. ничего кроме чистого char*, после того как создал новый буфер и скопировал из const char* text - шифрование-дешифрование прошло без мусора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 08:21 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverinпохоже нашел я в чем ошибка, нельзя передавать в gcry_cipher_encrypt/gcry_cipher_decrypt в параметре источника вот такие штуки buff.str().c_str() или buff.c_str(), т.е. ничего кроме чистого char*, после того как создал новый буфер и скопировал из const char* text - шифрование-дешифрование прошло без мусора Заглядывал в исходники крупных проектов, написанных на C++ (mysql, LLVM,Unity) первое, что бросается в тамошнем C++, это очень редкое и осторожное использование std контейнеров и стримов. И чаще всего они там переписаны по своему. Так что не стоит просто увлекаться этими string и stringstream, независимо от того, что там в букварях пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 12:14 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverinнельзя передавать в gcry_cipher_encrypt/gcry_cipher_decrypt в параметре источника вот такие штуки buff.str().c_str() или buff.c_str(), т.е. ничего кроме чистого char*, после того как создал новый буфер и скопировал из const char* text - шифрование-дешифрование прошло без мусора smaldТак что не стоит просто увлекаться этими string и stringstream, независимо от того, что там в букварях пишут. Оба утверждения - бред. Вы посмотрите оба на примеры своего кода. Там же сплошное нечитаемое полотно, отсуствие какого либо стиля, форматирования, смесь С и С++. Вот это и есть причина по которой обычно "виноваты" компилятор, библиотеки, стандартные классы, и все кто угодно, кроме самого накосячившего программиста . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 13:47 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyОба утверждения - бред. Вы посмотрите оба на примеры своего кода. Там же сплошное нечитаемое полотно, отсуствие какого либо стиля, форматирования, смесь С и С++. Вот это и есть причина по которой обычно "виноваты" компилятор, библиотеки, стандартные классы, и все кто угодно, кроме самого накосячившего программиста . Если делается вместо make_unique делается malloc, от этого С++ не перестаёт таковым быть. Что до контейнеров, то, например, stringstream в GNU имплементации устроен так. stringstream содержит basic_stringbuf, наследованный от basic_streambuf. basic_stringbuf содержит basic_string. В операции str() производится операции с basic_string через её методы. Короче Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. Как видно, assign запилен с приколом, по которому, если источник больше приёмника, приёмник move-ится в источник, если наоборот, источник копируется в приёмник. И разраб может, думая что буфер скопировался на новое место, начинать изменять старый буфер. Получится то, что получилось у ТС. ЗЫ если кого-то учили в ВУЗе писать код в виде цветочной клумбы, что женщинам дарить можно было, то это не потому, что так правильно, а потому, что так удобней преподу с похмелья его проверять и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 14:33 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
smaldИ разраб может, думая что буфер скопировался на новое место, начинать изменять старый буфер. Получится то, что получилось у ТС. Так причем тут контейнеры коль руки кривые? Не говоря уже о том что никакой stringstream для временного буфера тут вообще не нужен. Достаточно выделять память через vector или string. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 16:13 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
smald, Anatoly Moskovsky, да похоже ошибка не в том, что я думал, извиняйте. вообщем вычистил процедуру (думал заработало) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. использую в виде Код: plaintext 1. 2. 3. 4. stringstream out - склееная строка получаемая по куче условий и содержит время (т.е. шифруемая строка все время новая) так вот - при запуске выходит то чистая дешифрация, то с муссором, попробовал менять фразу salt на тот буфер что выходил с мусором и ВДРУГ он выходит чистый сколько раз не запускай!!! НО!!! как только я начинаю снова шифровать текст уже с другим временем - опять в какой то момент появляются строки с муссором и пропадают, как только время меняется. ЧТО ПРОИСХОДИТ????????????????????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 12:22 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverin, т.е. фигня какая то приблизительно так происходит Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 12:26 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverinЧТО ПРОИСХОДИТ????????????????????? После encrypt-а, перед decrypt-ом, закрыть предыдущую сессию и открыть новую, с тем же ключом и солью. Выше об этом писал. Код: plaintext 1. 2. 3. 4. 5. 6. Попробуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 17:08 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
smaldПопробуй. не, с этим все впорядке, в функции открывается - закрывается все нормально. я взял шифровано-дешифрованный вариант с мусором, подал на вход функции и получил сколько не повторял снова ИДЕНТИЧНЫЙ мусор (например, в конце строки не до конца дешифрованной), потом сменил несколько раз сальт-кей пока не получил выход без мусора. может все таки какой то символ не правильно перегоняется в unsigned -> hex ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 18:00 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverinне, с этим все впорядке, в функции открывается - закрывается все нормально. я взял шифровано-дешифрованный вариант с мусором, подал на вход функции и получил сколько не повторял снова ИДЕНТИЧНЫЙ мусор (например, в конце строки не до конца дешифрованной), потом сменил несколько раз сальт-кей пока не получил выход без мусора. может все таки какой то символ не правильно перегоняется в unsigned -> hex ??? Тут unsigned -> hex вообще значения не имеют. Сальт тоже может быть без проблем NULL/0 Приведённый выше мной примерчик, шифрует и дешифрует данные любой природы и количества. Скриншот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 18:24 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
smald, а это у вас что такое? Код: powershell 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 19:13 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverin, у меня тоже шифрует дешифрует если буфер символов сразу перекидывать, мне нужно как то в сокет ответить, а там что то браузер с ума сходит если я ему такое выдаю, поэтому все черех hex думал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 19:16 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverinwolverin, а там что то браузер с ума сходит если я ему такое выдаю, поэтому все черех hex думал. да и запрос GET приходит в скрипт тоже шифрованные, и в символах разве получиться обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 19:19 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverin а это у вас что такое? Хороший шифр, ни один Нэш не разберёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 22:33 |
|
||
|
Подскажите в libgcrypt по gcry_cipher_decrypt
|
|||
|---|---|---|---|
|
#18+
wolverinу меня тоже шифрует дешифрует если буфер символов сразу перекидывать, мне нужно как то в сокет ответить, а там что то браузер с ума сходит если я ему такое выдаю, поэтому все черех hex думал. А смысл, прямо в сокет? Что, для оправки каждого байта делать системный вызов, который будет оборачивать этот байт в пакет, слать его, это как-то не по фен-шую. Нормально будет реализовать небольшой протокол, по которому, например, передаются порции данных, где сами данные-структура с служебными полями в начале, указывающие смещения шифрованных данных и их размер, и сам массив шифра. Шифруемый бефер оформляется как непрерывный массив с этой структурой в самом начале. По полю размера шифрованных данных, определяется начало следующей порции шифрованных данных при приёме/передаче. Таким образом можно организовать последовательную передачу/приём шифрованных данных или обмен сообщениями. По принципу конечного автомата с контролем/установкой состояния приёма/передачи. Получится что-то вроде SSL или TLS. Кстати, можно заюзать последние. Там вся процедура шифрования, передачи, приёма дешифровки-через набор API. Только OpenSSL пропатчить надо будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 22:53 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38686154&tid=2019388]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 287ms |
| total: | 447ms |

| 0 / 0 |
