2017 九月 01
@RoB:

P神,关于密码加密的问题。前端密码用不可逆算法加密,那么问题来了,服务端如何校验这个密码的合规性,比如长度数字字母组合,是不是只能JS校验或者采用可解密的算法?我对一些大型网站抓包发现他们的加密方式类似base64,应该属于服务端可解密那种吧?

这是一个很有趣的问题。登录的时候有的用可解密的加密方式,比如直接RSA,或者用RSA交换过密钥的AES;也有网站直接用md5这样的哈希算法对密码进行“加密”。 前者有个典型的例子: [ 转载 ] 解开人人网登录密码的 RSA 加密 | 离别歌 我博客仅有的两篇转载之一。 后者也有个典型的例子:discuz 。 不过后者却是没办法检测密码的合规性,所以一般有这个需求的企业都考虑用前者,或者直接在前端进行验证。 另外,95%看起来像base64却又解出来是乱码的字符串,其实就是base64。只不过是加密过的,所以字符是乱的。 所以你说的看到很多大型网站抓包发现他们的加密方式类似base64,我觉得应该就是后者。

48888181545558

RoB

感谢P神😍

Sfish

合规性是面向正常用户的,前端校验完全可以。

jiayu

@Sfish
我理解也是这样,给正常用户用应该够了。最后的那段,一般情况都是 base64 之外又做了别的加密,并且还可能加密也是可逆的,以前恶意软件里见过 base64 之外又加了一层凯撒移位,甚至又加了第三层标准 RC4… 可能逆出来的,扒一下前段代码也许会有意外收获吧😂

RoB

@Sfish
这种建议提给大型互联网公司,算不算不严谨?总感觉差点啥,不过两种方法各有特点,BAT之流不知道如何处理此类问题的

挖洞的E4sy++

长得像base64的还有xxtea加密算法

phith0n

@挖洞的E4sy++
。。。一样是加密完以后再base64编码了一遍。。。自己看源码