Dart从base64转换到HEX



我不知道如何转换这个base64字符串:

'g7DmoaMppUjtbxe5Qm9NlMr5pRitu7TayInEUMeOW+FDxYW3GAh+G0YsfmoAyfqTw72fWphF9ncT
P7QnsXAM8Of6o92AuVzryBt5Usm4sJ32GLaH+9SNx3J5DK1NjKrWSbP0F/EyrGjoveBc2Ut7XntM
p8NcGn39eD+PHQKfWnc='

到这个HEX:

'83b0e6a1a329a548ed6f17b9426f4d94caf9a518adbbb4dac889c450c78e5be143c585b718087e1b462c7e6a00c9fa93c3bd9f5a9845f677133fb427b1700cf0e7faa3dd80b95cebc81b7952c9b8b09df618b687fbd48dc772790cad4d8caad649b3f417f132ac68e8bde05cd94b7b5e7b4ca7c35c1a7dfd783f8f1d029f5a77'

我用这个链接来转换它https://base64.guru/converter/decode/hex

类似这样的代码应该可以达到这个效果:

import 'dart:convert';
void main() {
final hex = base64Decode(
'g7DmoaMppUjtbxe5Qm9NlMr5pRitu7TayInEUMeOW+FDxYW3GAh+G0YsfmoAyfqTw72fWphF9ncT'
'P7QnsXAM8Of6o92AuVzryBt5Usm4sJ32GLaH+9SNx3J5DK1NjKrWSbP0F/EyrGjoveBc2Ut7XntM'
'p8NcGn39eD+PHQKfWnc=')
.map((e) => e.toRadixString(16).padLeft(2, '0'))
.join();
print(hex);
// 83b0e6a1a329a548ed6f17b9426f4d94caf9a518adbbb4dac889c450c78e5be143c585b718087e1b462c7e6a00c9fa93c3bd9f5a9845f677133fb427b1700cf0e7faa3dd80b95cebc81b7952c9b8b09df618b687fbd48dc772790cad4d8caad649b3f417f132ac68e8bde05cd94b7b5e7b4ca7c35c1a7dfd783f8f1d029f5a77
}

更新了处理输入中的换行符的解决方案:

import 'dart:convert';
void main() {
print(base64ToHex(
'g7DmoaMppUjtbxe5Qm9NlMr5pRitu7TayInEUMeOW+FDxYW3GAh+G0YsfmoAyfqTw72fWphF9ncTn'
'P7QnsXAM8Of6o92AuVzryBt5Usm4sJ32GLaH+9SNx3J5DK1NjKrWSbP0F/EyrGjoveBc2Ut7XntMn'
'p8NcGn39eD+PHQKfWnc='));

// 83b0e6a1a329a548ed6f17b9426f4d94caf9a518adbbb4dac889c450c78e5be143c585b718087e1b462c7e6a00c9fa93c3bd9f5a9845f677133fb427b1700cf0e7faa3dd80b95cebc81b7952c9b8b09df618b687fbd48dc772790cad4d8caad649b3f417f132ac68e8bde05cd94b7b5e7b4ca7c35c1a7dfd783f8f1d029f5a77
}
String base64ToHex(String source) =>
base64Decode(LineSplitter.split(source).join())
.map((e) => e.toRadixString(16).padLeft(2, '0'))
.join();
我想我知道为什么了。我使用simple_rsa Flutter包将我的字符串转换为base64,但带有3 "n"

@julemand101你的代码是正确的。

我只是添加了一个replaceAll "n"→">

String encryptedText='g7DmoaMppUjtbxe5Qm9NlMr5pRitu7TayInEUMeOW+FDxYW3GAh+G0YsfmoAyfqTw72fWphF9ncTP7QnsXAM8Of6o92AuVzryBt5Usm4sJ32GLaH+9SNx3J5DK1NjKrWSbP0F/yrGjoveBc2Ut7XntMp8NcGn39eD+PHQKfWnc='
encryptedText=base64.normalize(encryptedText.replaceAll("n", ""));//replace all
final hex = base64Decode(encryptedText).map((e) => e.toRadixString(16).padLeft(2, '0')).join();

最新更新