[英]Dart Convert from base64 to HEX
I don't know how to convert this base64 String:我不知道如何转换这个 base64 字符串:
'g7DmoaMppUjtbxe5Qm9NlMr5pRitu7TayInEUMeOW+FDxYW3GAh+G0YsfmoAyfqTw72fWphF9ncT
P7QnsXAM8Of6o92AuVzryBt5Usm4sJ32GLaH+9SNx3J5DK1NjKrWSbP0F/EyrGjoveBc2Ut7XntM
p8NcGn39eD+PHQKfWnc='
to this HEX:到这个十六进制:
'83b0e6a1a329a548ed6f17b9426f4d94caf9a518adbbb4dac889c450c78e5be143c585b718087e1b462c7e6a00c9fa93c3bd9f5a9845f677133fb427b1700cf0e7faa3dd80b95cebc81b7952c9b8b09df618b687fbd48dc772790cad4d8caad649b3f417f132ac68e8bde05cd94b7b5e7b4ca7c35c1a7dfd783f8f1d029f5a77'
I used this link to convert it https://base64.guru/converter/decode/hex我使用此链接将其转换为https://base64.guru/converter/decode/hex
Something like this should do the trick:这样的事情应该可以解决问题:
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
}
Updated solution which handles newlines in input:更新了处理输入换行符的解决方案:
import 'dart:convert';
void main() {
print(base64ToHex(
'g7DmoaMppUjtbxe5Qm9NlMr5pRitu7TayInEUMeOW+FDxYW3GAh+G0YsfmoAyfqTw72fWphF9ncT\n'
'P7QnsXAM8Of6o92AuVzryBt5Usm4sJ32GLaH+9SNx3J5DK1NjKrWSbP0F/EyrGjoveBc2Ut7XntM\n'
'p8NcGn39eD+PHQKfWnc='));
// 83b0e6a1a329a548ed6f17b9426f4d94caf9a518adbbb4dac889c450c78e5be143c585b718087e1b462c7e6a00c9fa93c3bd9f5a9845f677133fb427b1700cf0e7faa3dd80b95cebc81b7952c9b8b09df618b687fbd48dc772790cad4d8caad649b3f417f132ac68e8bde05cd94b7b5e7b4ca7c35c1a7dfd783f8f1d029f5a77
}
String base64ToHex(String source) =>
base64Decode(LineSplitter.split(source).join())
.map((e) => e.toRadixString(16).padLeft(2, '0'))
.join();
I think I know why.我想我知道为什么。 I use simple_rsa Flutter package that convert my string in base64 but with 3 "\n".我使用 simple_rsa Flutter package 将我的字符串转换为 base64 但使用 3“\n”。
@julemand101 Your code is correct. @julemand101 您的代码是正确的。
I simply added a replaceAll "\n" -> "" before your code.我只是在您的代码之前添加了一个 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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.