Указанный вектор инициализации (IV) не соответствует размеру блока для этого алгоритма

s = "one thing, two things, three things, four things"
s.split(",").map(&:strip)
# => ["one thing", "two things", "three things", "four things"]

В моей ОС Ubuntu 13.04 , используя Ruby 2.0.0p0

require 'benchmark'

s = "one thing, two things, three things, four things"
result = ""

Benchmark.bmbm do |b|
  b.report("strip/split: ") { 1_000_000.times {result = s.split(",").map(&:strip)} }
  b.report("regex: ") { 1_000_000.times {result = s.split(/\s*,\s*/)} }
end

Rehearsal -------------------------------------------------
strip/split:    6.260000   0.000000   6.260000 (  6.276583)
regex:          7.310000   0.000000   7.310000 (  7.320001)
--------------------------------------- total: 13.570000sec

                    user     system      total        real
strip/split:    6.350000   0.000000   6.350000 (  6.363127)
regex:          7.290000   0.000000   7.290000 (  7.302163)
27
задан Uwe Keim 6 October 2018 в 18:29
поделиться

1 ответ

Проблема в том, что размер вашего инициализационного вектора должен составлять 16 байтов.

Ваш начальный размер вектора составляет 14 байтов.

Вам нужно будет увеличить размер вашего исходного вектора на 2 байтов, и ваш код будет работать.

Пример:

string initVector = "HR$2pIjHR$2pIj12";

Затем вы получите результат с вашим текущим кодом и предоставленным размером IV (вектор инициализации):

hAC8hMf3N5Zb / DZhFKi6Sg ==

В этой статье хорошее объяснение того, что такое вектор инициализации.

http://en.wikipedia.org/wiki/Initialization_vector

59
ответ дан 28 November 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: