Требования в примере кода Java:
MultipartFile file; // image file
Long timestamp = System.currentTimeMillis();
byte[] fileBytes = file.getBytes();
byte[] timeBytes = String.valueOf(timestamp).getBytes();
byte[] digestBytes = ArrayUtils.addAll(fileBytes, timeBytes);
String result = hmac_sha1(digestBytes, key);
Переведите это на Ruby:
f = open(file)
file = File.binread(f)
# Here I tried different ways to get the data string
data = f + timestamp # way 1
data = f.unpack("B*") + timestamp.unpack("B*") # way 2
digest = OpenSSL::Digest.new('sha1')
result = OpenSSL::HMAC.hexdigest(digest, key, data)
Таким образом, мой вопрос заключается в том, как рассчитать «данные», чтобы результат моей версии Ruby совпадал с результатом моей версии Java.