Dart base64解码

时间:2019-11-06 08:52:22

标签: flutter dart

这是我的base64编码的String:

UPDATE rules_table
   SET id = id||descrip
 WHERE id IN (SELECT id
                FROM rules_table
               GROUP BY id
              HAVING COUNT(DISTINCT descrip) > 1)

使用https://jwt.io/可以正确解码 但是,当尝试在Flutter中使用eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiJkMjNiN2ViMy03MDgyLTRkZDktOGQ0OC1lMjU2YTM3OTNiOTciLCJyZWZyZXNoVG9rZW4iOiJiN2M3MTc4Yi04OWRjLTQxMDctYjUzNC1hOGZiOTNhMzEwNzAiLCJuYW1lIjoiTGVuIiwiaWF0IjoxNTczMDI4MjU2fQ 时,会出现这些错误

base64.decode('--Base64String--);

删除FormatException: Invalid character (at character 37) eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiIzYWNiNzBjZS0wYzYxLT... 前面的字符串时(我只需要.之后的信息) 我收到此错误

.

还有其他方法可以为Dart解码base64编码的字符串

3 个答案:

答案 0 :(得分:1)

使用此package

这将帮助您像jwt.io一样解码

答案 1 :(得分:0)

您可以先使用base64.normalize

例如:

import 'dart:convert';

void main() {
  final String b64 = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiJkMjNiN2ViMy03MDgyLTRkZDktOGQ0OC1lMjU2YTM3OTNiOTciLCJyZWZyZXNoVG9rZW4iOiJiN2M3MTc4Yi04OWRjLTQxMDctYjUzNC1hOGZiOTNhMzEwNzAiLCJuYW1lIjoiTGVuIiwiaWF0IjoxNTczMDI4MjU2fQ';

  String foo = b64.split('.')[0];
  List<int> res = base64.decode(base64.normalize(foo));

  print(utf8.decode(res));
}

结果:

{"alg":"HS256","typ":"JWT"}

答案 2 :(得分:-1)

试试吧。这对你有帮助

Center(child: 
Image.memory(
base64Decode(image6464.substring(23).replaceAll("\n", ""))
 )
),