Как я использую Base64 и исключаю специальные символы + / = от последовательности?

Я в настоящее время использую 'base64' Руби, но у последовательностей, которые создаются, есть специальные символы как/+ =.

Как я удаляю их и все еще удостоверяюсь, что мой расшифровывает работы в будущем?

По существу я хочу алфавитно-цифровой использоваться.

1
nl ja de
+ / = вся часть того, каков base64 стандарт... Иначе, how' d вы делают его "64" (26 строчных букв + 26 прописных букв + 10 десятичных цифр = 62... Пропавшие без вести два, чтобы достигнуть 64, и один, чтобы сказать то, чем длина последняя группа была). Посмотрите en.wikipedia.org/wiki/Base64
добавлено автор Romain, источник

3 ответы

Вместо того, чтобы изобретать что-то новое, я использовал бы Base64.urlsafe_encode64 (и его коллега Base64.urlsafe_decode64 ), который является в основном base64 с + и/заменен - и _. Это соответствует rfc 4648, так должно быть широко понятным

5
добавлено

Если вы хотите алфавитно-цифровой, я думаю, что это лучше и практично, чтобы использовать основу 36. У рубина есть встроенное кодирование/расшифровка, чтобы базироваться 36 (26 писем и 10 чисел).

123456.to_s(36)
# => "qglj"

"qglj".to_i(36)
# => 123456
1
добавлено
class Integer
  Base62_digits = [*("0".."9"), *("a".."z"), *("A".."Z")]

  def base_62
    return "0" if zero?
    sign = self < 0 ? "-" : ""
    n, res = self.abs, ""
    while n > 0
      n, units = n.divmod(62)
      res = Base62_digits[units] + res
    end
    sign + res
  end

end

p 124.base_62 # => "20"

Это могло быть адаптировано, чтобы обращаться с более низкими основаниями, но это может быть достаточно, как.

0
добавлено
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков