码农的联系方式
2016-06-25 08:29
309 查看
微博看到这样一个短租信息,其中亮点是房东把电话号码藏在代码中,需要能读懂代码才能把电话号码解出来:
以下代码是我把短租信息中的代码照抄下来的:
-_-!!!我并不知道是个什么毛语言写的,不过在看了两遍这个代码之后还是看懂了代码的意思。
很多语言中都有for 语句,所以代码的大致意思显然是迭代索引取arr的数字还原出电话号码。
一般现在大家都留的是手机号,而中国手机号1开头,所以可见索引从0开始。
所以当迭代index,i == 2时,取出arr中第三位,电话号码第一位为1
i == 0时,取出arr中的第一位,得到8,
i == 3时,取出arr中的第四位,得到0,和之前到数字拼起来可以得到电话码前三位是180,以此类推...
可以写代码来解,所以就写了个python一行流的代码来解了:
-_-百度搜索 18013820100 发现居然有一些人在提问怎么把号码解出来。。。这跟本不难嘛。
还没完,要是我们也想弄一个类似这样的招聘或者招租的信息呢?我们要把联系方式藏到代码中。
可以写代码那就写代码,写个python用来生成的包含电话号码的python代码!
运行结果:
以下代码是我把短租信息中的代码照抄下来的:
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
相关文章推荐
- 程序员应具备的素质(国内的大多程序员生产力不够,所以只能早早转行)
- 一个程序员的爱情表白书
- 程序员技术练级攻略
- 技术人每个阶段应该做什么
- 如何不用那么担心成为一个坏程序员
- 国外程序员经常用的二十八个学习网站
- 职场感悟.Article.谈谈学习的道与术?
- 面试相关
- 找工记20160624
- 剑指offer 面试题1 赋值运算符函数
- 剑指offer-面试4:替换空格(字符串操作)
- 剑指offer-面试3:二维数组中的查找(数组和指针)
- 面试题1-将二叉搜索树转变成排序的双向链表
- 面试官的七种武器:Java篇
- 115个Java面试题和答案——终极列表(下)
- 黑马程序员-多线程-在android开发中经常会遇到从子线程切换到主线程,但是频繁地切换会使代码变得很臃肿,也不好维护,想请教一下各位大牛都是怎么处理的?
- 线程相关代码分析->常见面试题(一、Thead类)
- 告别码农,成为真正的程序员
- 2016.6.24 同花顺 2017届实习生招聘笔试专场(提前批)+2016.7.4同花顺新大楼面试
- 操作系统面试—虚拟内存