|
|
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Необходимо очень получить хэш строки, данным алгоритмом есть куча примеров SHA 256,512, но не 384. Кто-нибудь реализовывал или есть алгоритм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 09:02:14 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Hash.THashSHA2 http://www.cityinthesky.co.uk/opensource/dcpcrypt/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 09:28:17 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Barney83, http://torry.net/authorsmore.php?id=1500 - старая добрая DCPCrypt https://github.com/paolo-rossi/delphi-jose-jwt/blob/master/Source/Common/JOSE.Hashing.HMAC.pas - или тут смотри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 09:29:54 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Barney83Кто-нибудь реализовывал или есть алгоритм? Я недавно нашел хороший алгоритм hmac, использующий виндовое криптоапи, подправил и перевел на паскаль. Реально работает хорошо. Код: 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. (переменые ошибое - для отладки, в принципе уже вроде не нужны) Передай туда нужный алгоритм шифрования и результат с длиной, например, так: Код: pascal 1. 2. 3. 4. 5. 6. 7. А затем - загони результат в 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. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. тебе понадобится Wcrypt2.pas найти в интернете и возможно константы алгоритмов типа CALG_SHA_384 (все они есть в мсдн). Да, начиная от CALG_SHA_256 не всякая WinXP поддерживает эти алгоритмы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 09:34:51 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Да, я это тестил на d6 и fpc 3.0.2 для win32/i386 и win64/x86_64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 09:36:19 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Еще докину пару ссылок: https://github.com/fundamentalslib/fundamentals4 https://github.com/fundamentalslib/fundamentals5 SHA384 в 5й версии точно есть, правда без HMAC. HMACи есть только для SHA1/256/512. См. Source/Utils/flcHash.pas ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 10:02:46 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
YuRock, Код: pascal 1. 2. 3. 4. 5. Боюсь даже подумать, с какой скоростью это будет тормозить работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 10:05:28 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
YuRock, Можно работающий код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 10:30:37 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
а чем не подошел родной код из первой ссылки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 11:07:28 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
krapotkin, не компилируется, нахватает каких-то файлов и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 11:22:23 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
ладно. намек не заходит. тогда прямой вопрос. версию делфи может раскроете? потому что начиная вроде с сиэттла в делфи есть родной модуль с SHA2 хэшем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 11:26:30 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
krapotkin, Embarcadero® RAD Studio XE Version 15.0.3953.35171 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 11:28:30 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
тогда DCPCrypt должен работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 11:48:32 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
krapotkin, HMAC там нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 11:54:16 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Barney83YuRock, Можно работающий код? Я дал работающий код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:00:45 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpYuRock, Код: pascal 1. 2. 3. 4. 5. Боюсь даже подумать, с какой скоростью это будет тормозить работать. Да, ужас, но мне не надо было быстродействия в этой ф-ции пока-что. Я её "скачал не смотря", протестировал на глаз и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:01:56 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
YuRockBarney83YuRock, Можно работающий код? Я дал работающий код. Единственное, в EncodeBase64 (которую я в качестве примера дал) надо все String заменить на AnsiString, раз у тебя дельфя юникодная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:04:12 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
YuRock, ALG_ID это что за тип данных, не хватает явно каких-то модулей еще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:08:09 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Barney83, он определен в Wcrypt2.pas Могу дать свой, но не факт, что он у тебя скомпилится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:12:19 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Barney83, И еще, возможно, для алгоритмов > SHA256 надо константу BLOCK_SIZE изменить с 64 на 80. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:13:47 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
YuRock, У меня вот так реализована, работает очень быстро 1.178297 сек на процессоре 2009г - E3300 (1M Cache, 2.50 GHz, 800 MHz FSB) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 17:14:18 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Забыл приложить как тестил на скорость Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 17:15:08 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Сейчас заметил кое что, чем меня уже пинали на форуме... Добавляем const function base64_encode(const str: string): string; И результаты уже - 0.930440 sec. Не за что бы не залез и не увидел, если бы не ты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 17:18:07 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикНе за что бы не залез и не увидел, если бы не ты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 17:28:36 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
няша, И причём тут это?. Это уже спам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 17:30:46 |
|
||
|
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 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикСмысл запускать то что не работает?) /facepalm Ты реально не понимаешь разницы между string и ansistring?.. Тогда я не вижу больше предмета для обсуждения, подтяни что ли теорию, потом подумай почему второй вызов base64encode выдают другой результат и на самом деле является UB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:09:34 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpНяшикСмысл запускать то что не работает?) /facepalm Ты реально не понимаешь разницы между string и ansistring?.. Тогда я не вижу больше предмета для обсуждения, подтяни что ли теорию, потом подумай почему второй вызов base64encode выдают другой результат и на самом деле является UB. ОМГ. Я привёл пример, что в string (он же WideString а именно MarshaledString) и AnsiString Выдают неверные результаты. Не коси под идеота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:11:39 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvp, Как не крути твой код, на русские символы он выдаёт подобную беребелбду. С англ всё нормально IARDBEEEQQQ6BDgEOQQgAEIENQQ6BEEEQgQ= 0PPx8ero6SDy5erx8gAAAAAAAAAAAAAAAAA= Ты хотя бы проверяй результаты своей программы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:12:40 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Няшикalekcvp, Как не крути твой код, на русские символы он выдаёт подобную беребелбду. С англ всё нормально IARDBEEEQQQ6BDgEOQQgAEIENQQ6BEEEQgQ= 0PPx8ero6SDy5erx8gAAAAAAAAAAAAAAAAA= Ты хотя бы проверяй результаты своей программы Хорошо, вопрос на засыпку: почему ты длину AnsiString указываешь как Length(A2)*2 ? Что означает эта 2?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:24:20 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpНяшикalekcvp, Как не крути твой код, на русские символы он выдаёт подобную беребелбду. С англ всё нормально IARDBEEEQQQ6BDgEOQQgAEIENQQ6BEEEQgQ= 0PPx8ero6SDy5erx8gAAAAAAAAAAAAAAAAA= Ты хотя бы проверяй результаты своей программы Хорошо, вопрос на засыпку: почему ты длину AnsiString указываешь как Length(A2)*2 ? Что означает эта 2?.. Потому что копипаст. Но это всё не важно, потому что правильный бейсик64 будет таким 'Русский Текст' => 0KDRg9GB0YHQutC40Lkg0KLQtdC60YHRgg== Вот сайт для проверки http://base64.ru/ Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:29:09 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикВот сайт для проверки http://base64.ru/ Еще раз говорю: ты не понимаешь что такое AnsiString :) http://foxtools.ru/Base64 Введи сюда то что выдаёт моя функция (0PPx8ero6SDy5erx8g==) и выбери кодировку Windows 1251 , после этого нажми "отправить" и посмотри на результат декодирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:39:58 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvp, =_= Я думал что ты строишь дурака, но мне кажется что не строишь. Русский текст 2 байта, и их надо сохранить последовательно - как застёгивает замочек ширинку ленту. Т.е, разбить символ на 2 байта, и взять ещё 1 байт от следующего символа. Тебе сколько раз можно повторять это??? Base64 пакует 3 байта!!!! Причём тут вообще вывод в AnsiString ???.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:49:09 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикТебе сколько раз можно повторять это??? Base64 пакует 3 байта!!!! Причём тут вообще вывод в AnsiString ???.. Мне наш разговор напоминает разговор слепого с глухонемым, или ты просто очень скиллованный тролль. Замени в своём примере на картинке S2: AnsiString; на S2: Utf8String; и посмотри на результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 20:53:28 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикОМГ. Я привёл пример, что в string (он же WideString а именно MarshaledString) и AnsiString Выдают неверные результаты. Ты всерьёз считаешь, что одинаковый текст в разных кодировках должен давать одинаковый base64? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 21:03:34 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvp, Вставь свой base64 в свой сайт http://foxtools.ru/Base64 alekcvp результат на моём Core i7 26000JTQstC10L3QsNC00YbQsNGC0Ywg0L/QvtC/0YPQs9Cw0LXQsiDQt9Cw0LrQu9C10LLQsNC70Lgg0L/QuNGC0L7QvdCwIQ== Няшик: Result: 2.444395 sec. FAQyBDUEPQQwBDQERgQwBEIETAQgAD8EPgQ/BEMEMwQwBDUEMgQgADcEMAQ6BDsENQQyBDAEOwQ4BCAAPwQ4BEIEPgQ9BDAEIQA= AsmB64: Result: 1.043641 sec. л base64 т.к. просто и понятно :) [/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 21:14:21 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Няшикalekcvp, base64 т.к. просто и понятно :) [/quot] Таки ты тролль. "FAQyBDUEPQQwBDQERgQwBEIETAQgAD8EPgQ/BEMEMwQwBDUEMgQgADcEMAQ6BDsENQQyBDAEOwQ4BCAAPwQ4BEIEPgQ9BDAEIQA=" - это в кодировке Unicode или cp_1200 на том сайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 21:17:00 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
alekcvpНяшикalekcvp, base64 т.к. просто и понятно :) Таки ты тролль. "FAQyBDUEPQQwBDQERgQwBEIETAQgAD8EPgQ/BEMEMwQwBDUEMgQgADcEMAQ6BDsENQQyBDAEOwQ4BCAAPwQ4BEIEPgQ9BDAEIQA=" - это в кодировке Unicode или cp_1200 на том сайте.[/quot] Я уже все перетыкал что бы его расшифровать. Даже в пыху вставил, и там же получил 25=04F0BL �?>?C3052 �70:;520;8 �?8B>=0!� http://sandbox.onlinephpfunctions.com/code/984f3917de156ce71e9b11c09ac46a84e40d2a11 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 21:19:29 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
НяшикЯ уже все перетыкал что бы его расшифровать. Даже в пыху вставил, и там же получил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 21:29:09 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Barney83Не работает пример, валится на UpdateLastError( 'CryptCreateHash (2)' ); Странно. Там и ошибкам вроде негде взяться в этой строке. Надо смотреть SysErrorMessage( g_nLastCryptError ) в этой строке и разбираться. Я, честно говоря, не тестировал для 384 и выше, только для MD5, SHA1 и SHA256. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2017, 10:35:47 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
Barney83, подкорректировал ф-цию, теперь работает и для 384/512 Код: 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. Нужна будет константа PROV_RSA_AES = 24 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2017, 12:44:50 |
|
||
|
BASE64-HMAC-SHA384
|
|||
|---|---|---|---|
|
#18+
YuRock Код: pascal 1. 2. 3. 4. 5. 6. заменить на Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2017, 12:52:12 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041959]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
92ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 533ms |

| 0 / 0 |
