我试图得到模糊的电子邮件,是由防火墙模糊。我在python中找到了解决方案,但我不知道如何用飞镖或颤栗来解决这个问题。这里是python代码
r = int(encodedString[:2],16)
email = ''.join([chr(int(encodedString[i:i+2], 16) ^ r) for i in range(2, len(encodedString), 2)])
return email
print cfDecodeEmail('543931142127353935313e352e7a373b39') # usage发布于 2022-06-27 19:01:27
encodedString[:2]/encodedString[i:i+2]从encodedString中提取两个字符。Dart等价物(假设ASCII字符)分别为encodedString.substring(0, 2)和encodedString(i, i + 2) .。
list.join().与
''.join(list)在Dart中的应用[for (var i in items) i].的集合-for:
[i for i in items])与for (var i = 2; i < encodedString.length; i += 2).在Dart中的for i in range(2, len(encodedString), 2)等价的是使用一个基本的for循环,其中包含一个开始、条件和增量:
int(string, 16)将string解析为十六进制数。在Dart中,使用int.parse(string, radix: 16).chr(integer)从指定的代码点创建一个字符串。在Dart中等效的是String.fromCharCode(integer).把这一切结合在一起:
String cfDecodeEmail(String encodedString) {
var r = int.parse(encodedString.substring(0, 2), radix: 16);
var email = [
for (var i = 2; i < encodedString.length; i += 2)
String.fromCharCode(
int.parse(encodedString.substring(i, i + 2), radix: 16) ^ r,
)
].join();
return email;
}
void main() {
// Prints: me@usamaejaz.com
print(cfDecodeEmail('543931142127353935313e352e7a373b39'));
}https://stackoverflow.com/questions/72776853
复制相似问题