如何检查字符串是否在Ruby中编码为base 64?

时间:2010-08-27 17:43:13

标签: ruby

我必须在Ruby中实现一些基于Java实现的代码,这些代码已在公司中完成。部分Java代码可用于检查字符串是否使用org.apache.commons.codec.binary.Base64库中的Base64.isArrayByteBase64(aInput)进行base64编码。

我确实看到Ruby的标准库包含一个模块Base64,用于对Base64进行编码和解码。但我没有看到Ruby内置的任何功能,它检查特定字符串是否是Base64编码。那里有没有其他图书馆/宝石符合我的要求?

提前致谢。

2 个答案:

答案 0 :(得分:4)

您可以使用正则表达式快速检查。像[A-Za-z0-9+\/]+={0,3}这样的东西非常接近。然后检查长度是否可被4整除。

http://en.wikipedia.org/wiki/Base64

答案 1 :(得分:0)

%r{^(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|(?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))$}

是rfc4648的正确正则表达式。

Ref.