【问题标题】:encode and decode base64 string to decimal string coddec将 base64 字符串编码和解码为十进制字符串 codedec
【发布时间】:2011-09-23 11:28:16
【问题描述】:

我有一个像这样的 base64 字符串 = "pCZXOVjpnlePyDk6znZrSw==" 我需要一个编码器/解码器来将它转换为像这样的十进制字符串 = "84587163248712923874"
有没有编解码器可以做到这一点?

【问题讨论】:

  • 语言、平台、上下文?目前还不清楚这些数字是什么意思......请提供更多信息。
  • 将 base64 编码/解码为仅包含数字的字符串。爪哇
  • 那个 base 64 字符串解码为 16 字节 A426573958E99E578FC8393ACE766B4B 它们与数字有什么关系?
  • base64 是 base64。但是,编码器仅对字节起作用,因此您必须在编码之前将字符转换为字节,并在解码后转换回来。
  • stackoverflow.com/questions/469695/decode-base64-data-in-java 告诉你如何解码一个base64字符串,至于你得到什么;如果它是一个编码的十进制字符串,那是你将得到的,如果它是一张猫的图片,那么你会得到它。

标签: java encoding base64 decoding


【解决方案1】:

您可能需要一个两阶段的过程:

  1. 将 Base64 字符串转换为字节数组。
  2. 将字节数组转换为数字。

16 字节对于 Java 来说太大了,所以我假设你需要一个 BigInteger。有一个BigInteger 构造函数将字节数组作为参数,但您需要小心符号位。 BigIntegertoString() 方法将为您提供所需的字符串。

【讨论】:

    【解决方案2】:

    Base64 编码/解码现在(终于)成为默认库的一部分。查看类 javax.xml.bind.DatatypeConverter。在那里你会发现两种方法 printBase64BinaryparseBase64Binary(以及一些其他的转换例程)。

    【讨论】:

    • 这告诉如何解析base64,但不告诉如何将结果(字节数组)转换为十进制字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多