Module: Base64 (Ruby 2.2.3)
Description: Module : Base64 - Ruby 2.2.3

- Home
- Core 2.2.3
- Std-lib 2.2.3
- Downloads

Support for the Ruby 2.2 series has ended. See here for reference.

### Home Classes Methods

### In Files

- base64.rb

### Methods

- #decode64
- #encode64
- #strict_decode64
- #strict_encode64
- #urlsafe_decode64
- #urlsafe_encode64

### Class/Module Index

Quicksearch

- Base64

No matching classes.

# Base64

The Base64 module provides for the encoding (#encode64, strict_encode64, urlsafe_encode64) and decoding (#decode64, strict_decode64, urlsafe_decode64) of binary data using a Base64 representation.

## Example¶ ↑

A simple encoding and decoding.

    require "base64"

    enc   = Base64.encode64('Send reinforcements')
                        # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
    plain = Base64.decode64(enc)
                        # -> "Send reinforcements"

The purpose of using base64 to encode data is that it translates any binary data into purely printable characters.

### Public Instance Methods

decode64(str) click to toggle source

Returns the Base64-decoded version of `str`. This method complies with RFC 2045. Characters outside the base alphabet are ignored.

    require 'base64'
    str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
          'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
          'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
    puts Base64.decode64(str)

Generates:

    This is line one
    This is line two
    This is line three
    And so on...

                   # File base64.rb, line 57
    def decode64(str)
      str.unpack("m").first
    end

encode64(bin) click to toggle source

Returns the Base64-encoded version of `bin`. This method complies with RFC 2045. Line feeds are added to every 60 encoded characters.

    require 'base64'
    Base64.encode64("Now is the time for all good coders\nto learn Ruby")

Generates:

    Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
    UnVieQ==

                   # File base64.rb, line 37
    def encode64(bin)
      [bin].pack("m")
    end

strict_decode64(str) click to toggle source

Returns the Base64-decoded version of `str`. This method complies with RFC 4648. ArgumentError is raised if `str` is incorrectly padded or contains non-alphabet characters. Note that CR or LF are also rejected.

                   # File base64.rb, line 72
    def strict_decode64(str)
      str.unpack("m0").first
    end

strict_encode64(bin) click to toggle source

Returns the Base64-encoded version of `bin`. This method complies with RFC 4648. No line feeds are added.

                   # File base64.rb, line 64
    def strict_encode64(bin)
      [bin].pack("m0")
    end

urlsafe_decode64(str) click to toggle source

Returns the Base64-decoded version of `str`. This method complies with “Base 64 Encoding with URL and Filename Safe Alphabet'' in RFC 4648. The alphabet uses '-' instead of '+' and '_' instead of '/'.

                   # File base64.rb, line 88
    def urlsafe_decode64(str)
      strict_decode64(str.tr("-_", "+/"))
    end

urlsafe_encode64(bin) click to toggle source

Returns the Base64-encoded version of `bin`. This method complies with “Base 64 Encoding with URL and Filename Safe Alphabet'' in RFC 4648. The alphabet uses '-' instead of '+' and '_' instead of '/'.

                   # File base64.rb, line 80
    def urlsafe_encode64(bin)
      strict_encode64(bin).tr("+/", "-_")
    end