设为首页 加入收藏

TOP

码农的联系方式
2017-09-30 16:12:15 】 浏览:9551
Tags:农的 联系方式

微博看到这样一个短租信息,其中亮点是房东把电话号码藏在代码中,需要能读懂代码才能把电话号码解出来:

以下代码是我把短租信息中的代码照抄下来的:

int [] arr = new int[]{8,2,1,0,3};
int [] index = new int[]{2,0,3,2,4,0,1,3,2,3,3};
String tel = "";
   for (int i : index) {
        tel +- arr[i];
   }
   System.out.println("联系方式:" + tel);

-_-!!!我并不知道是个什么毛语言写的,不过在看了两遍这个代码之后还是看懂了代码的意思。

很多语言中都有for 语句,所以代码的大致意思显然是迭代索引取arr的数字还原出电话号码。

一般现在大家都留的是手机号,而中国手机号1开头,所以可见索引从0开始。

所以当迭代index,i == 2时,取出arr中第三位,电话号码第一位为1

i == 0时,取出arr中的第一位,得到8,

i == 3时,取出arr中的第四位,得到0,和之前到数字拼起来可以得到电话码前三位是180,以此类推...

可以写代码来解,所以就写了个python一行流的代码来解了:

>>> arr = "82103" ; index = "20324013233" ; print("电话:",''.join([arr[r] for r in map(int,list(index))]))
电话: 18013820100

-_-百度搜索 18013820100 发现居然有一些人在提问怎么把号码解出来。。。这跟本不难嘛。

还没完,要是我们也想弄一个类似这样的招聘或者招租的信息呢?我们要把联系方式藏到代码中。
可以写代码那就写代码,写个python用来生成的包含电话号码的python代码!


"""
2016年6月25日 07:32:28
码农的联系方式
"""
temp = """arr = %s
index = %s
tel = ''
for i in index:
    tel += arr[i]
print("电话号码:" + tel)
"""
def encode(tel):
    arr = list(set(list(tel)))
    index = [arr.index(r) for r in list(tel)]
    return temp % (arr,index)

code=encode("15099003422")

print(code)

#因为code字符串是一段合法的python代码,用exec执行后可以电话号码解出来。
exec(code)

运行结果:

arr = ['3', '2', '9', '1', '5', '0', '4']
index = [3, 4, 5, 2, 2, 5, 5, 0, 6, 1, 1]
tel = ''
for i in index:
    tel += arr[i]
print("电话号码:" + tel)

电话号码:15099003422
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python基础系列----语法、数据类.. 下一篇python内置模块-json和pickle

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目