来自.net字符串的Base64解码错误

时间:2018-02-20 17:12:44

标签: java base64

我正在尝试解码来自c#rest服务的这个base64字符串。

  

bABnLrav1BTJgKonT4u288arWYhfyPbHrmb2vq27ZlguHztSBD05AV3JBpJ6rlY8lyb70IOicJ7Twpi2UH1mqS7Hmk8NF / kWrRi / fZAPRsY8LwIE + ifn7Rm4r / ddiJqbrfs4d8QQiSOapwPoNbLgkOOBgs6DTzWTdvgN61VHC4LimXM3 / CRlcMQ2L1CDeBvCatcuGtGcV8I87s7rQp0KggYUIZUYudjcBoPEFdZ2WBdJgLfsrisezrRYtd1NFs3q8YYyTbZfNUwLS8 / JPCUD88Qrp5yp47yb0uz38Cgga97JK9mhWpxBdPX / c2eLSseESFL06vbIR40cscY0qlwhZA ==

Base64.getDecoder().decode(encrypted.getBytes(StandardCharsets.UTF_16LE))

并抛出此错误

java.lang.IllegalArgumentException: Illegal base64 character 0

我解码它的方式有什么问题?

2 个答案:

答案 0 :(得分:0)

如果文本中有非法字符,Base64.getDecoder()将抛出错误。您可以尝试使用Base64.getMimeDecoder()来忽略非法字符。

无论哪种方式,都有许多在线网站,你可以检查你的软件之外的基本64文本的有效性(如果你搜索base64编码解码,你会发现一些你可以使用),以防文本是编码正确。

答案 1 :(得分:0)

base64字符串很好并解码为:

6C 00 67 2E B6 AF D4 14 C9 80 AA 27 4F 8B B6 F3
C6 AB 59 88 5F C8 F6 C7 AE 66 F6 BE AD BB 66 58
2E 1F 3B 52 04 3D 39 01 5D C9 06 92 7A AE 56 3C
97 26 FB D0 83 A2 70 9E D3 C2 98 B6 50 7D 66 A9
2E C7 9A 4F 0D 17 F9 16 AD 18 BF 7D 90 0F 46 C6
3C 2F 02 04 FA 27 E7 ED 19 B8 AF F7 5D 88 9A 9B
AD FB 38 77 C4 10 89 23 9A A7 03 E8 35 B2 E0 90
E3 81 82 CE 83 4F 35 93 76 F8 0D EB 55 47 0B 82
E2 99 73 37 FC 24 65 70 C4 36 2F 50 83 78 1B C2
6A D7 2E 1A D1 9C 57 C2 3C EE CE EB 42 9D 0A 82
06 14 21 95 18 B9 D8 DC 06 83 C4 15 D6 76 58 17
49 80 B7 EC AE 2B 1E CE B4 58 B5 DD 4D 16 CD EA
F1 86 32 4D B6 5F 35 4C 0B 4B CF C9 3C 25 03 F3
C4 2B A7 9C A9 E3 BC 9B D2 EC F7 F0 28 20 6B DE
C9 2B D9 A1 5A 9C 41 74 F5 FF 73 67 8B 4A C7 84
48 52 F4 EA F6 C8 47 8D 1C B1 C6 34 AA 5C 21 64

但是,你应该将它解码为普通的ascii,而不是unicode。