Библиотеки добавляют разные окончания, если строка не кратна восьми символам.
В JS:
if (block.length < 8) {
var count = 8 - block.length;
while (0 < count--) {
block += "\0";
}
В C++:
size_t padding_length = dst.size() % sizeof(uint64_t);
if (padding_length == 0) {
padding_length = sizeof(uint64_t);
} else {
padding_length = sizeof(uint64_t) - padding_length;
}
for (size_t i = 0; i < padding_length; ++i) {
dst.push_back(static_cast<char>(padding_length));
}
Не хотите менять код библиотек - сами дополняйте строки до длины, кратной восьми.