Redian新闻
>
md!这代码有毒

md!这代码有毒

科技

你好,我是yes。

刚想周五下午摸个鱼,直接一个钉钉消息打破了我的计划:有个bug。

我说:啥bug?

对方说:刚申请的内部用户的账号登录不上去。

我说:还有这种事,报啥错?

登录的时候报了这个错:

他的密码是这个的:

我瞄了一眼,这明显不含大写啊,你让他密码改成含大写的就行了。

对方有点懵:关键这密码是初始生成的密码啊!他现在登都登不上咋改!管理员重置密码的功能也都没做。

我:???初始密码生成竟然没大写。

我直接一波探索,找到了那块逻辑:

乍一看没啥毛病。。实则毛病挺大:

首先用的是 hutool 的 RandomUtil。

从代码逻辑来看,是想通过  RandomUtil.randomStringUpper(4); 得到 4 个大写随机字符,然而:

很显然,写这个逻辑的同学被这个方法名骗了,咱平日编码严谨点还是得点进去瞄一眼逻辑的。

所以通过 RandomUtil.randomStringUpper 并不一定能得到大写字母,因为可能都随机到数字。

如果说第一个坑我还能理解这位同学,那么第二坑我觉得真的有点秀了。

第二个坑:String randomString = RandomUtil.randomString(allStr.toString(), 18);

这又是几个意思??

好不容易 allStr 拼接了含大写、小写、数字、特殊字符,然后就搁这从中随机取 18 次?

那么问题来了,这18次一定能随机到大写吗?一定能随机到数字吗??

前面辛辛苦苦拼的各种格式的字符,最后靠随机取是吧,一切随缘咯。

你看看,这逻辑实现是不是有点毒。

不过回头想想,我来这公司也挺久了,是第一次收到这个反馈。。。说明之前运气确实不错。

这种随缘代码使用频率不高确实不容易发现问题。

不扯了,突然钉钉又推了一个消息。。线上有报错,容我去排查一波,有必要的话下周分享!

我是yes,我们下篇见!

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
用一个月重构了同事写的烂代码,我总结了8条重写烂代码的经验!这居然是他第五次来ONE THIRD!长篇小说《如絮》第一百四十九章 旧金山-新加坡-2005年 不期而遇告别2015-2023:我们这代创业者辐射超标! 在用这代iPhone的华人们小心啦! 法国已经禁售它了!我们这代人,有没有“出头”的希望?张扬对话水庆霞:球场40年,我做好这代人的事凯旋门上的四块著名浮雕致命缺陷对标GPT-4代码解释器!港中大让模型写代码解决数学难题,得分超越GPT-4英伟达或吊打AMD!预计独霸AI芯片市场90%的份额我们这代人,还有退路吗?0代码训练GPT-5?MIT微软证实GPT-4涌现自我纠错能力,智能体循环根据反馈让代码迭代!Linux 内核第一版 (v0.01) 开源代码解读,仅 8670 行代码!萬瑪才旦(藏語:?????????????,Péma Tséten,12/3/1969 – 5/8/2023) 才情橫溢的藏族導趣图:​喏,​看我这代码抄的咋样?靶向MDSC的策略(2):清除MDSC或诱导MDSC的分化GPT-4写代码不如ChatGPT,误用率高达62%!加州大学两位华人开源代码可靠性基准RobustAPI这代年轻人真的恐婚恐育吗?当 GPT 遇到低代码:低代码平台 AIGC 开发落地实战 | ArchSummit 热门演讲实录食品、能源价格、租金统统飙升,澳人快活不起了!压力最大的竟是这代人🤓你知道这代表什么吗:仅 8670 行代码,Linux 内核第一版 (v0.01) 开源代码解读加州百年啤酒厂"Ancho"倒闭!居民不舍:这代表了旧金山的味道一群窝囊废基于量化分析的低代码平台体验优化实践 | 低代码技术内幕Linux 之父“开炮”!曾喊 AMD 真香,今炮轰 AMD:怒批 fTPM “愚蠢”、“破玩意儿”这么美妙的超导梦想,不敢奢望在我们这代人手上实现微软发布基于LLM的代码生成神器,动动嘴就能写代码!员工盗代码换皮肤自营新游戏被刑拘:游戏代码为何是公司财产?趣图:这代码太酷了吧雷军写的代码又上热搜了!写了十多年代码,熬过无数通宵仅8670行代码,Linux内核第一版 (v0.01) 开源代码解读发靶向MDSC的策略(1):抑制MDSC向肿瘤微环境的转运全现金购房比例增至33%,这代人是背后的推动力量!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。