【发布时间】:2019-02-14 18:35:30
【问题描述】:
我有一个使用 java 编码的字符串
data = new String(Base64.getEncoder().encode(encVal), StandardCharsets.UTF_8);
我正在接收此编码数据作为 API 响应。我想用 ruby 对它进行 base64 解码。我正在使用
Base64.strict_decode64(data)
为此。但这不起作用。谁能帮我解决这个问题?
【问题讨论】:
-
如果您包含一个这样的 base64 编码字符串的样本会有所帮助,因此 Ruby 回答者不必为了测试解决方案而使用 Java。还有,这个问题和aes有什么关系?
-
"KO7USRGwfmQbw3RXI6EqYJ72hnpmCzFaQbjNd1EWplus1RNKUELopYsZ9z5YyKplusQpCGstFkuwHJQ20F4R9H5u5EXu1f6DhnakteAx9hbiIEqygRdBuDM3ftrVukETHICwFD/eGo6TdyqRH5K5yjCzgjmk2TKwu5dkPS4Dm4OJF4jkB1yX/i6BMIwbXIplusrbsRYGujybxaajtTe/rXIKZbs6X5Yi2dbJuRYtTnVkg4dHZYlibplusJsoKYBTQSWNplusKXgyIQ0" .
-
好吧,
require 'base64'; Base64.decode64(data)应该可以工作,但是我要把垃圾拿出来,所以我只能希望你把垃圾放进去。严格的解码器抱怨长度不能被 4 整除,并且会做与decode64相同,如果你用=填充它。 -
strict_decode64还将提高ArgumentError用于尾随换行符。如果您想继续使用strict_decode64而不是常规的decode64,可以尝试Base64.strict_decode64(data.chomp)。