现在工作中,其实主要是两个,一个是摘要算法,也就是MD5这种。众所周知,安全性不是很高,容易被破解。不过,对于安全系数要求不是特别高的业务场景,也足够用了。(不涉及钱的场景) 另一种是,可逆的加密。主要用于处理敏感信息。比如手机号。手机号,通过盐,在数据库存储密文。然后,配置文件里存盐。取出来的时候,逆运算一波即可。
其实,我的理解,加密的核心无非就是防止数据泄漏的风险。这个很好理解,就好像,一个宝箱存着你的所有财产,如果只有一把钥匙,那这把钥匙丢了或者被人复制了,那你的财产就全丢了。所以,可以多上几把锁。每把钥匙放在你不同的亲信那里,必须要集齐所有的钥匙才能打开你的宝箱。比如,如果数据库明文,数据库泄漏了那用户密码就泄漏了。如果加上密钥,就需要同时获取数据库和密钥,如果再加上分片,就需要同时搜集多个分片。大幅度降低了泄漏的几率。毕竟,那么多数据同时泄漏还是太离谱了。
优化的点的话,我认为,我们系统的盐存配置文件也不是很安全。我在想,盐是不是可以做成动态的。通过用户部分不会改变的摘要信息去换取盐。