IT技术博客大学习 共学习 共进步
首页 / SteveZheng
IT 2015-09-04 22:46:04 / 累计浏览 2,860

nodejs中文md5与php结果不一致

作者在做流量接口时遇到了一个典型的跨语言互操作问题:Node.js和PHP对同一段中文字符串进行MD5加密,竟然产生了不同的结果,直接导致签名校验失败。而英文字符串则能通过,说明问题根源并不在算法本身。 经过排查,确认这是字符编码差异导致的经典坑点。Node.js的`crypto`模块在计算哈希时,如果没有显式指定输入字符串的编码,默认可能使用与PHP不同的字符集进行字节转换,从而生成不同的MD5值。文章给出了一个简洁的修复方案:在调用`instance.update()`方法时,第二个参数明确传入`'utf8'`,强制使用统一的UTF-8编码。 这个小坑的解决成本虽低,但排查时容易让人迷惑。作者通过实践验证了显式编码指定的必要性,确保了不同语言栈间哈希结果的一致性,为处理多语言环境的签名验证提供了直接参考。

IT 2013-09-23 13:49:40 / 累计浏览 3,900

我是如何变成一个Loser的

这篇讲的是一个技术团队管理者,通过复盘自己亲手将部门带向解散的全过程,为我们总结出了一份“避坑指南”。 作者坦诚地分享了自己在担任部门主管一年间的四大失误:对新加入的实习生队友缺乏足够的引导与关怀,未能形成团队凝聚力;在团队技术栈上反复摇摆(C#/PHP/Python/Node.js),导致多人多语言、项目零散,严重消耗了本就紧张的人力;在薪酬竞争力不足时,没有为团队描绘清晰的愿景,致使士气低落、成员相继离职;以及陷入“功能实现”的技术自嗨,忽略了产品本身的体验和价值。 这些看似是管理“大忌”的错误,恰恰构成了真实而宝贵的反面案例。文章没有空谈理论,而是用具体的项目选择、团队配置和个人心路历程,刻画了技术驱动型团队可能面临的典型困境。对于每一位带团队或即将带团队的技术人来说,这些从“Loser”视角提炼出的教训,或许比成功经验更值得引以为戒。

IT 2013-09-23 13:48:42 / 累计浏览 1,760

实现一下webapp的手机摇一摇功能

作者一开始也以为在WebApp里实现“摇一摇”必须依赖Hybrid框架,直到他发现了浏览器原生的DeviceMotion API。这篇文章就记录了他利用这一接口实现纯前端摇一摇功能的过程,思路清晰且实用。 核心实现并不复杂:通过监听设备的`devicemotion`事件,可以获取到`accelerationIncludingGravity`属性下的`x`、`y`、`z`三个方向的加速度数据。作者通过分析这三个数值的变化,来判断手机是否发生了“摇动”行为。文章给出了关键的事件监听和数据获取的代码示例,展示了如何用短短几行代码搭建起这个交互的基础框架。 这篇分享的巧妙之处在于,它证明了对于一些常见的设备交互需求,不必立刻上重型方案。利用好浏览器提供的标准Web API,往往就能以更轻量、更跨平台的方式达成目标。对于前端开发者来说,这为丰富移动端WebApp的交互体验提供了一个低成本的可行思路。