|
|
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Всем привет! Java код Код: java 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. код Delphi Код: pascal 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. 167. 168. 169. 170. 171. 172. описанные функции работаю, код проверки тоже приведен если я кодирую данные в Java а расшифровать пытаюсь в Delphi то получаю абракадабру, подскажите в чем может быть ошибка? параметры для криптографии я указываю одинаковые (как мне кажется) в Java и Delphi, данным между Java и Delphi обмениваюсь через сокеты, код обмена не привожу в нем я уверен, проверял передачу не кодированного текста обмен происходит правильно. P.S. смотрю на код... и почему я раньше про Java не думал, в 5 раза код короче а делает тоже самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 14:57 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Код особо не читал. Первая мысль: что там насчет строк? В джаве вижу явный getBytes("ACSII"). В дельфи вижу передачу указателя на строку. Строки там с D2009 UTF-16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 15:33 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Alexander A. Sak, у меня версия Delphi BDS 2006, там кодировка Windows-1251, поэтому на стороне Java указываю явно "ASCII"(то же самое что Windows-1251) вот пример кода когда Java отправляет данные Delphi получает и возвращает обратно Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 15:39 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Mandarin, если D - D и J - J сами в себе работают, значит криптопровайдеры или параметры у него разные. Код больше, т.к. в D ты писал процедурно, без классов и привёл заголовочные файлы. - закодируй строку в файл Мама мыла раму и сравнивай побайтово. Там ведь время не зашивается? Байтовый поток повторяемый? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 15:59 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Тогда надо делать crypt/decrypt и сравнивать каждый шаг в джаве и дельфи, чтобы найти где расхождение. Исходный масссив байтов тут и там -- одинаковый? Аналогично: - Результирующий массив байтов после SHA1() - Результирующий массив байтов после RC4() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 16:05 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Petro123, то что параметры алгоритмов разные это вероятнее всего, но пока не могу понять какие. в Java тип byte от -128 до 127 в Delphi от 0 до 255 поэтому напрямую сравнивать не получится. для сравнения с делал две проверки 1. посылал по сокету Java не шифрованный текст в виде байт, принимал в виде байт переводил в строку - получал верный результат 2. посылал по сокету Java шифрованный текст в виде байт, принимал в виде бай отправлял обратно в виде бай, расшифровывал - получал верный результат из этого делаю вывод что конвертация из Java.byte в Delphi.byte делается верно, ни потерь ни искажения нет остается (на мой взгляд) только одно - подбирать параметры для функций криптографии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 16:06 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakТогда надо делать crypt/decrypt и сравнивать каждый шаг в джаве и дельфи, чтобы найти где расхождение. Исходный масссив байтов тут и там -- одинаковый? Аналогично: - Результирующий массив байтов после SHA1() - Результирующий массив байтов после RC4() сейчас проверю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 16:07 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Mandarinу меня версия Delphi BDS 2006, там кодировка Windows-1251, поэтому на стороне Java указываю явно "ASCII"(то же самое что Windows-1251)В пределах первой половины 256-байтовой таблицы? Ну, дык, при наличии отсутствия EBCDIC - кто бы сомневался ... Вот что вы собрались со второй половиной делать?.. P.S. Привыкайте тестировать на реальных данных. Если "windows-1251", то "Это я", а не "privet". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 16:22 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, "В пределах первой половины 256-байтовой таблицы? Ну, дык, при наличии отсутствия EBCDIC - кто бы сомневался ... Вот что вы собрались со второй половиной делать?.." что вы имели ввиду? я вас не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 17:12 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Mandarin, выбрасывай в файл поток. Так проще будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 17:34 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Mandarinпоэтому на стороне Java указываю явно "ASCII"(то же самое что Windows-1251) кто сказал, что одно и то же? в Java имеется windows-1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 17:50 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
ИзопропилMandarinпоэтому на стороне Java указываю явно "ASCII"(то же самое что Windows-1251) кто сказал, что одно и то же? в Java имеется windows-1251 Ну ошибается человек. Для теста на строке "privet" байты же будут одинаковыми в ASCII и 1251. Пусть хоть так пока правильный результат получит. Потом расскажем, что все не так просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 17:57 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Mandarinчто вы имели ввиду? я вас не понял.Обработку национальных символов надо проверять (сюрприз!) на национальных символах. Вот когда ваш тест корректно обработает "Привет, мир", тогда и можете утверждать, что "ascii" и "windows-1251" - синонимы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 18:35 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, возможно с кодировками я напутал, но для цифр и английского текста это не должно быть причиной того что декодирование не проходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 20:20 |
|
||
|
Помогите пожалуйста перевести код из Delphi в Java
|
|||
|---|---|---|---|
|
#18+
Mandarin, похоже я понял в чем дело, я сравнил по байтно (Alexander A. Sak спасибо за совет) хеши ключей, хеши совпадают, потом сравнил длины получившихся ключей в Delphi функции мне говорят что у меня длина ключа 128 бит а в Java длина ключа 20 байт или 160 бит, как в Java задать размер ключа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 21:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39187267&tid=2124296]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 330ms |

| 0 / 0 |
