|
|
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
[quot Няшик]Забыл приложить как тестил на скорость А где исходники ZStartTime и ZStopTime? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 17:43:35 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvp, Извиняюсь что не приложил. Вот полный исходный код, проект консольного приложения, + включить в настройках проекта галочку оптимизации Код: 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. Выдаёт даже 0.926001 это 280000000 символов на моём то железе. Результаты более чем хорошие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 17:53:57 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
YuRock, Не работает пример, валится на UpdateLastError( 'CryptCreateHash (2)' ); Для алгоритма SHA_384 использовал const CALG_SHA_384 = $0000800d; type THMAC_SHA384_DATA = packed array[ 0 .. 47 ] of Byte; procedure TForm6.FormCreate(Sender: TObject); var MyData : THMAC_SHA384_DATA; begin .. if HMAC_SHA384('MyString','MyKey',MyData) then .. end; Может у кого есть dll с другого языка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 19:03:26 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Няшик, Я так понимаю, у тебя не Unicode delphi, да? Иначе если ему на вход передать строку с русскими символами, то он неправильно её обрабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 19:10:01 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpНяшик, Я так понимаю, у тебя не Unicode delphi, да? Иначе если ему на вход передать строку с русскими символами, то он неправильно её обрабатывает. Тоже интеесно чего это он. Ввёл 1 русский символ П, и запустил. На строке Код: pascal 1. Вывел 31 хотя код соответствует 207 ... Следовательно это косяк редактора среды. У меня Токио. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 19:53:47 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Няшик, Дело не в этом, а в Код: pascal 1. в этой строке тупо переполнение будет, т.к. 3 символа - это 6 (шесть) байт, а не 3. И никак ты их в три байта не загонишь без потерь, хоть тресни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 19:56:30 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Няшик, Попробуй какой-нибудь файл своей функцией закодировать и ты поймешь о чём я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 19:58:21 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикТоже интеесно чего это он. Ввёл 1 русский символ П, и запустил. На строке Код: pascal 1. Вывел 31 хотя код соответствует 207 ... Следовательно это косяк редактора среды. У меня Токио. А 'a' - это какой тип?... Потому что русская "П" - это 0x041F, а 31 - это 0x1F. Улавливаешь? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 20:20:19 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpНяшик, Я так понимаю, у тебя не Unicode delphi, да? Иначе если ему на вход передать строку с русскими символами, то он неправильно её обрабатывает.Ну чё пристал? Зато быстро! Быстро, Карл! (развелось оптимизаторов ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 22:19:35 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
white_niggerНу чё пристал? Зато быстро! Быстро, Карл! (развелось оптимизаторов ))) Хотите быстро и оптимизаций?... их есть у нас x86 only Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 22:49:58 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpwhite_niggerНу чё пристал? Зато быстро! Быстро, Карл! (развелось оптимизаторов ))) Хотите быстро и оптимизаций?... их есть у нас x86 only Код: 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. Уви, дорогой сэр. Это работает медленнее моего кода, плюс тоже не юникод. Сейчас обмозгую как его добавить в свой код, и скину пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 02:50:51 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
В общем вышло вот такое, правда уже не секунда. А целых 3.052310 секунды. Но за то поддержка юникода Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 02:58:09 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикВ общем вышло вот такое, правда уже не секунда. А целых 3.052310 секунды. Но за то поддержка юникода Код: 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. Скажи пожалуйста, а кому уперлись в пень твои секунды ? Или ты за чистое искусство страдаешь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 10:31:16 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
schiНяшикВ общем вышло вот такое, правда уже не секунда. А целых 3.052310 секунды. Но за то поддержка юникода Код: 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. Скажи пожалуйста, а кому уперлись в пень твои секунды ? Или ты за чистое искусство страдаешь ? Для быстрого и качественного проекта - который хочет заработать привлекая этим своё внимание. Что за странный вопрос ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 10:45:03 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикУви, дорогой сэр. Это работает медленнее моего кода, плюс тоже не юникод. Сейчас обмозгую как его добавить в свой код, и скину пример 1. Мой вариант работает с памятью - ей пофиг, юникод или нет. А вот результат должен быть в AnsiString, а не в string, иначе смысла в кодировании нет (т.к. выходной буфер через один забит нулями). 2. Когда говоришь что что-то работает медленнее - надо бы доказательство приводить, хотя допускаю что такое может быть на очень старых процессорах, т.к. мой оптимизирован под Core i3 и выше. Сравнение результат на моём Core i7 26000JTQstC10L3QsNC00YbQsNGC0Ywg0L/QvtC/0YPQs9Cw0LXQsiDQt9Cw0LrQu9C10LLQsNC70Lgg0L/QuNGC0L7QvdCwIQ== Няшик: Result: 2.444395 sec. FAQyBDUEPQQwBDQERgQwBEIETAQgAD8EPgQ/BEMEMwQwBDUEMgQgADcEMAQ6BDsENQQyBDAEOwQ4BCAAPwQ4BEIEPgQ9BDAEIQA= AsmB64: Result: 1.043641 sec. Обрати внимание что результаты разные, потому что твой код перед кодированием ещё и модифицирует исходные данные (base64 вообще-то предназначен для передачи двоичных данных, модифицировать их перед передачей - это бред). код теста Код: 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. schiСкажи пожалуйста, а кому уперлись в пень твои секунды ? Или ты за чистое искусство страдаешь ?Могу за себя сказать: изучал ассемблер в Delphi, в качестве "подопытного" выбрал base64 т.к. просто и понятно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:13:46 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvp1. Мой вариант работает с памятью - ей пофиг, юникод или нет. А вот результат должен быть в AnsiString, а не в string, иначе смысла в кодировании нет (т.к. выходной буфер через один забит нулями). Бред, полный бред ! Скажу я тебе. Так как символ надо преобразовать в байтовую кодировку UTF-8 Например так, поддержка 6 байт Код: 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. "С памятью" Я ржу Т.е в коде мы с памятью не можем работать? Мой пример тот выдаёт 0,9 сек а твой 1,1 ... Вся твоя быстрота не обоснованная. alekcvp[spoiler Сравнение] Я верю тебе, верю! А теперь в настройках галочку оптимизации пожалуйста включи, и проверь снова. И увидишь что мой пример будет во много раз быстрее. Иж какой. alekcvpМогу за себя сказать: изучал ассемблер в Delphi, в качестве "подопытного" выбрал base64 т.к. просто и понятно :) Практика такова что ты не напишешь в современных Delphi на ассемблере лучше чем компилятор оптимизирует. Многие знатоки на этом форуме это подтвердят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:23:36 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpНяшик: Result: 2.444395 sec. AsmB64: Result: 1.043641 sec. Если твой код на I3 так плохо работает, если на моём процессоре тоже за 1 секунду отрабатывает. А он кстати 2009 года https://ark.intel.com/ru/products/42771/Intel-Celeron-Processor-E3300-1M-Cache-2_50-GHz-800-MHz-FSB То твой код ещё хуже моего, мой то работает быстрее с включённой галочкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:26:17 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpМогу за себя сказать: изучал ассемблер в Delphi, в качестве "подопытного" выбрал base64 т.к. просто и понятно :) https://github.com/aklomp/base64 уже есть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:27:31 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикПрактика такова что ты не напишешь в современных Delphi на ассемблере лучше чем компилятор оптимизирует. Многие знатоки на этом форуме это подтвердят. Увы, у тебя слишком сильная вера в возможности оптимизации дельфийского компилятора. Особенно для 64-битной платформы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:29:22 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
schiНяшикПрактика такова что ты не напишешь в современных Delphi на ассемблере лучше чем компилятор оптимизирует. Многие знатоки на этом форуме это подтвердят. Увы, у тебя слишком сильная вера в возможности оптимизации дельфийского компилятора. Особенно для 64-битной платформы. Я не пользуюсь этой версией компилятора, про неё ничего сказать не могу. Но вот для 86-32 битного разницы нету. Дельфовый компилятор ляпает код гораздо лучше чем его напишет человек, не раз уже в этом убеждался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:31:07 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикБред, полный бред ! Скажу я тебе. Так как символ надо преобразовать в байтовую кодировку UTF-8 Ещё раз, читай по буквам: wikiBase64 буквально означает — позиционная система счисления с основанием 64. Здесь 64 — это число символов в алфавите кодирования, из которого формируется конечный буквенно-цифровой текст на основе латинского алфавита. Число соответствует наибольшей степени двойки (26), которая может быть представлена с использованием печатных символов ASCII. Эта система широко используется в электронной почте для представления бинарных файлов в тексте письма (транспортное кодирование). Какое нафиг преобразование исходных данных, если они по-умолчанию двоичные и их надо передать "как есть" и восстановить на другом конце один-в-один?.. НяшикТ.е в коде мы с памятью не можем работать? Ладно, для редких военных профессий: мой код принимает указатель на буфер в памяти и размер данных в нём, ему пофиг что там - текст, музыка или картинка с котиками: он все преобразует как есть. НяшикМой пример тот выдаёт 0,9 сек а твой 1,1 ... Вся твоя быстрота не обоснованная. А теперь в настройках галочку оптимизации пожалуйста включи, и проверь снова. Ты вот про эту галочку?.. А чтобы нормально сравнить - запусти мой пример, с русским текстом. Потому что я не удивлюсь, если ты у себя в тесте написал что-то вроде: Код: pascal 1. 2. 3. 4. НяшикПрактика такова что ты не напишешь в современных Delphi на ассемблере лучше чем компилятор оптимизирует. Многие знатоки на этом форуме это подтвердят. Вот как раз в современных Delphi с оптимизацией всё плохо, в отличие от старых. Иногда они такие куски лишнего кода генерят, что за голову схватиться хочется. Хотя, справедливости ради, это чаще всего качается inline-функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:37:16 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvp, Картинка: https://www.dropbox.com/s/cy9m4qmmndp6j9h/settings.png?dl=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:37:31 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
schi https://github.com/aklomp/base64 уже есть :) Ещё б кто мне подсказал как .c напрямую в проект дельфей линковать без пляски с .obj и .dll. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:42:52 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Няшикschiпропущено... Увы, у тебя слишком сильная вера в возможности оптимизации дельфийского компилятора. Особенно для 64-битной платформы. Я не пользуюсь этой версией компилятора, про неё ничего сказать не могу. Но вот для 86-32 битного разницы нету. Дельфовый компилятор ляпает код гораздо лучше чем его напишет человек, не раз уже в этом убеждался. Я убеждался в обратном. Да и Саша Шарахов не зря куски FastCode на ассемблере писал. По поводу 64-битного компилятора: http://blog.digitaltundra.com/?p=296 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 19:43:46 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpЕщё раз, читай по буквам: Ты реально не понимаешь? Речь идёт о символах, которые нужно перевести в base64 Например смайлик сердечко это 3 байта, этих три байта надо разбить так, и перевести в base Код: pascal 1. 2. 3. Т.е один юникодный символ ❤ займёт ровно 3 байта, которые должны быть сохранены в base64 вот так Код: pascal 1. 2. 3. 4. Всё ниже не вижу смысла комментировать, я уже объяснил. alekcvpТы вот про эту галочку?.. Да про эту. У тебя комп забит муссором от майл - ру ?))) alekcvp А чтобы нормально сравнить - запусти мой пример, с русским текстом. Смысл запускать то что не работает?) alekcvpВот как раз в современных Delphi с оптимизацией всё плохо, в отличие от старых. Иногда они такие куски лишнего кода генерят, что за голову схватиться хочется. Хотя, справедливости ради, это чаще всего качается inline-функций. Согласен если плохо программируешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:00:06 |
|
||
|
|

start [/forum/topic.php?fid=58&startmsg=39500433&tid=2041959]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
209ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 540ms |

| 0 / 0 |
