модуль Base64
Модуль Base64 предоставляет кодирование (#encode64, strict_encode64, urlsafe_encode64) и декодирование (#decode64, strict_decode64, urlsafe_decode64) двоичных данных с использованием представления Base64.
Пример
Простое кодирование и декодирование.
require "base64"
enc = Base64.encode64('Send reinforcements')
# -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
plain = Base64.decode64(enc)
# -> "Send reinforcements"
Цель использования base64 для кодирования данных заключается в том, что он преобразует любые двоичные данные в чисто печатные символы.
Методы публичного экземпляра
# File lib/base64.rb, line 57
def decode64(str)
str.unpack("m").first
end Возвращает декодированную версию Base64 от str. Этот метод соответствует RFC 2045. Символы за пределами базового алфавита игнорируются.
require 'base64'
str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
puts Base64.decode64(str)
Создаёт:
This is line one This is line two This is line three And so on...
# File lib/base64.rb, line 37
def encode64(bin)
[bin].pack("m")
end Возвращает закодированную версию Base64 от bin. Этот метод соответствует RFC 2045. Возвращаемые символы делятся на строки по 60 символов.
require 'base64'
Base64.encode64("Now is the time for all good coders\nto learn Ruby")
Создаёт:
Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g UnVieQ==
# File lib/base64.rb, line 72
def strict_decode64(str)
str.unpack("m0").first
end Возвращает декодированную версию Base64 от str. Этот метод соответствует RFC 4648. ArgumentError генерируется, если str неверно завершается или содержит неалфавитные символы. Обратите внимание, что CR или LF также отклоняются.
# File lib/base64.rb, line 64
def strict_encode64(bin)
[bin].pack("m0")
end Возвращает закодированную версию Base64 от bin. Этот метод соответствует RFC 4648. Строки не добавляются.
# File lib/base64.rb, line 88
def urlsafe_decode64(str)
strict_decode64(str.tr("-_", "+/"))
end Возвращает декодированную версию Base64 от str. Этот метод соответствует «Кодировке Base 64 с безопасными для URL и имен файлов алфавитами» в RFC 4648. Алфавит использует '-' вместо '+' и '_' вместо '/'.
# File lib/base64.rb, line 80
def urlsafe_encode64(bin)
strict_encode64(bin).tr("+/", "-_")
end Возвращает закодированную версию Base64 от bin. Этот метод соответствует «Кодировке Base 64 с безопасными для URL и имен файлов алфавитами» в RFC 4648. Алфавит использует '-' вместо '+' и '_' вместо '/'.
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.