Tôi có một biểu diễn chuỗi của thông báo hex MD5 cho một tệp, mà tôi muốn chuyển đổi thành base64 để sử dụng tiêu đề HTTP Content-MD5 khi tải lên. Có một cơ chế rõ ràng hơn hoặc hiệu quả hơn để làm hơn những điều sau đây không?Chuyển đổi một thông số thập lục phân thành base64 trong Ruby
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
Trông khá rõ ràng và hiệu quả với tôi. Điều duy nhất có thể nhanh hơn/rõ ràng hơn là một hook bản địa thực hiện chính xác phương thức "hex_to_base64_digest". – maerics