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)
Проблема в том, что размер вашего инициализационного вектора должен составлять 16 байтов.
Ваш начальный размер вектора составляет 14 байтов.
Вам нужно будет увеличить размер вашего исходного вектора на 2 байтов, и ваш код будет работать.
Пример:
string initVector = "HR$2pIjHR$2pIj12";
Затем вы получите результат с вашим текущим кодом и предоставленным размером IV (вектор инициализации):
hAC8hMf3N5Zb / DZhFKi6Sg ==
В этой статье хорошее объяснение того, что такое вектор инициализации.