当前位置:网站首页>关于技术分享的思考
关于技术分享的思考
2022-08-10 17:50:00 【51CTO】
故事起因
讲一个自己的故事,应网友的请求,帮他找一个人,这个人与他通过支付宝发生过金钱上的来往,后面可能是产生了什么纠纷,具体原因我也不太清楚,他的请求就是:能不能通过支付宝上的转账记录查询到对方的手机号。
由于支付宝的隐私机制,如果对方的手机号不存在你的手机通讯录中,你是看不到对方的完整手机号的,只能看到前三位和后两位,转账的时候能看到对方的头像与昵称数额比较大的时候还能知道对方的名字,但就是无法看到完整的11位的手机号
上面这段话,有个很重要的隐含条件,对方的手机号存在你的手机通讯录中,那我就可以通过支付宝看到他完整的号码!
这就激起了我的兴趣,觉得可以试试,因为思路就是围绕上面那个机制,问题就将简化成将所有可能的号码添加到我的手机通讯录。
如何找到所有可能的号码呢?简单粗暴的就是把中间缺省的6位数字用排列组合的形式全部列出来,但凡学过点排列组合的人都知道,6位数,每位数都有0-9的十种可能,一共就有10的6次方,也就是一百万种……即使能列出来,手机也得炸了吧,有这么大容量存储100万条号码吗?
问题就变成了尽可能的缩小范围,不说太细,怕被别有用心的人利用。
然后就是利用代码将全部可能的号码生成出来,问题就变成了如何将生成的手机号导入手机,这是另一个问题,我还是用代码解决的,也不说太细,怕被别有用心的人利用。
结果就是,最终我帮他找到了。
但我要说的是另外两件事情:
解决问题的通用思路:
当你面对问题时,最先一定要聚焦于最终的结果,围绕最终结果提出解决方案,能提出解决方案,说明理论上这个问题是有解的,否则就没有可行性;然后再围绕解决方案逐步将问题解剖,把事务分解成最基本的组成,利用各种方法,解决分解的过程中的每一个问题,案例中的最终结果是通过支付宝找到某人的号码,解决方案就是利用支付宝的手机通讯录能加好友的机制,问题就变成了将对方的号码添加到通讯录,添加的前提是要拿到号码,拿到号码的解决方案是暴力遍历,但经过分析暴力遍历结果过多,几乎没有可行性,问题就变成了如何减少遍历结果,这个问题的解决方案就是*****************缩小范围,这个方案优化后可以执行,利用代码三下两下就搞定,得到了一堆号码,问题又出现了,怎么将成千上万的号码快速导入手机呢?围绕这个问题再去思考、寻求解决方案,总之,在这样的思想指导下,你一定能慢慢的接近最终的目标。
技术滥用的后果
最终我帮助那个人实现了目的,本想将这个完整的过程记录下来分享给所有人,但有想到,如果这个解决方案被别有用心的人利用了,那岂不是为虎作伥、助纣为虐,这就回到了老生常谈的问题,技术无罪人有罪,任何技术都是中性的,用来干什么取决于人,天使可以用来创建天堂,魔鬼可以用来制造梦魇。
总结
受开源文化的熏陶,分享是程序员的美德,但对于技术分享,还是要多留个心眼,以免在不知情的情况下被人用来作恶。
三观一致的,可以
边栏推荐
- WebRTC源码分析 nack详解
- 「企业架构」什么是Zachman框架?
- 电路板ROHS测试报告怎么办理?电路板ROHS检测流程
- 机器人控制器编程实践指导书旧版-实践八 机器人综合设计
- Your local docbook2man was found to work with SGML rather than XML
- 文件包含漏洞复习总结
- WebRTC source code analysis nack detailed explanation
- 「软件架构」10种常见的软件架构模式
- 【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(中)
- Toronto Research Chemicals BTK甜味剂配方丨D-Abequose
猜你喜欢

「软件架构」10种常见的软件架构模式

从Delta 2.0开始聊聊我们需要怎样的数据湖

直播回顾|多云时代,如何建设企业级云管理平台?(附建设指南下载)

机器人控制器编程实践指导书旧版-实践五 数字舵机(执行器)

mysql主主复制+keepalived高可用

const的自己理解

测试接口出现“data“: “Full authentication is required to access this resource“凭证已过期

Live Review|How to build an enterprise-level cloud management platform in the multi-cloud era?(with the download of the construction guide)

CDH6.3.2之Kerberos安全认证_大数据培训

Product Description丨MobPush fast integration method on Android side
随机推荐
迪文发布新款2K高清DGUS智能屏
软链接、硬链接——ln -s 使用
R语言patchwork包将多个可视化结果组合起来、plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义后缀信息(suffix)
[JMeter]Beanshell解析Json格式的接口响应数据
D-Wave成功上市!量子计算商业化正在加速
【图像去雾】基于颜色衰减先验的图像去雾附matlab代码
Interpretation of ZLMediaKit server source code---RTSP push and pull
兼具外观、性能、屏幕!华硕灵耀X 14火热抢购中
本周四晚19:00知识赋能第六期第5课丨OpenHarmony WiFi子系统
机器人控制器编程整理汇总-辞旧迎新-
报告详解影响英特尔10/11/12代酷睿处理器的ÆPIC Leak安全漏洞
R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、如果已知阶数则直接使用arima函数构建模型(order参数指定阶数)
requires ‘angle‘ attribute to be a multiple of 45
【测试】黑盒测试用例设计方法
期货开户手续费加1分已经是常态
定时器循环展示数组
Oracle Install [email protected] 7.6
文件包含漏洞复习总结
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
期货开户前要第一时间确认手续费