一个使用示例是:
require "base64"
Base64.strict_encode64('Stuff to be encoded')
Base64.strict_decode64("U3R1ZmYgdG8gYmUgZW5jb2RlZA==")
严格意味着在解码时拒绝空格/CR/LF,并且在编码时不添加 CR/LF。
请注意,如果以下内容被接受:
Base64.decode64("U3R1ZmYgdG8gYmUgZW5jb2RlZA==\n")
严格来说,由于尾随(换行),上述内容不被接受,并且\n
以下行将引发ArgumentError: invalid base64
异常:
Base64.strict_decode64("U3R1ZmYgdG8gYmUgZW5jb2RlZA==\n")
所以 strict 在解码时只接受/预期字母数字字符,在编码时只返回字母数字字符。
请尝试以下方法,看看一个编码如何用'\n'
(linefeed) 每 60 个字符换行一次,而严格的不是:
print Base64.encode64('I will not use spaces and new lines. I will not use spaces and new lines. I will not use spaces and new lines. I will not use spaces and new lines.I will not use spaces and new lines.')
print Base64.strict_encode64('I will not use spaces and new lines. I will not use spaces and new lines. I will not use spaces and new lines. I will not use spaces and new lines.I will not use spaces and new lines.')