Jam*_*onr 3 ruby encryption ruby-on-rails
我想编码一个网址(http://www.someurl.com),以便我可以将它作为参数添加到GET调用:
domain.com/encoded_url
一旦收到另一端,我需要能够解码网址,但是,安全性不是问题.我宁愿坚持使用一个简单的密码(必须能够处理像':'和'?'这样的特殊字符),因为更高级的密码会生成编码字符串,这些字符串不会作为有效的URI字符串传递,也不能作为URL参数传递.
Ruby中实现的哪种密码最适合此目的?
使用Base64是一个好主意,Ruby提供了它的URL安全实现,因为默认会生成像+和=这样的字符.urlsafe_encode64将使用' - '代替'+'和'_'而不是'+',因此可以像URL参数一样传递它们.
require "base64"
encoded_url = Base64.urlsafe_encode64('http://www.someurl.com', ) #=> "aHR0cDovL3d3dy5zb21ldXJsLmNvbQ=="
decoded_url = Base64.urlsafe_decode64(encoded_url) #=> "http://www.someurl.com"
Run Code Online (Sandbox Code Playgroud)