首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用dart转换这个已被治愈的破解python代码?

如何用dart转换这个已被治愈的破解python代码?
EN

Stack Overflow用户
提问于 2022-06-27 18:32:26
回答 1查看 55关注 0票数 0

我试图得到模糊的电子邮件,是由防火墙模糊。我在python中找到了解决方案,但我不知道如何用飞镖或颤栗来解决这个问题。这里是python代码

代码语言:javascript
复制
    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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-27 19:01:27

  • In Python,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

  • 相当于Dart中的Python列表理解([i for i in items])

for (var i = 2; i < encodedString.length; i += 2).在Dart中的for i in range(2, len(encodedString), 2)等价的是使用一个基本的for循环,其中包含一个开始、条件和增量:

  • 在Python中,int(string, 16)string解析为十六进制数。在Dart中,使用int.parse(string, radix: 16).

  • 在Python中,chr(integer)从指定的代码点创建一个字符串。在Dart中等效的是String.fromCharCode(integer).

把这一切结合在一起:

代码语言:javascript
复制
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'));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72776853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档