Mam reprezentację ciągów skrótu szesnastkowego MD5 dla pliku, który chcę przekonwertować na base64, aby użyć nagłówka HTTP Content-MD5 podczas przesyłania. Czy istnieje bardziej przejrzysty lub skuteczniejszy mechanizm niż następujący?Konwersja heksadecymalnego skrótu do base64 w Rubim
def hex_to_base64_digest(hexdigest)
[[hexdigest].pack("H*")].pack("m").strip
end
hex_digest = "65a8e27d8879283831b664bd8b7f0ad4"
expected_base64_digest = "ZajifYh5KDgxtmS9i38K1A=="
raise "Does not match" unless hex_to_base64_digest(hex_digest) === expected_base64_digest
Wygląda całkiem jasno i skutecznie. Jedyną rzeczą, która może być szybsza/klarowniejsza, jest rodzimy hak, który wykonuje dokładnie metodę "hex_to_base64_digest". – maerics