防止用户敏感信息(电话号码、身份证号、住址等)泄露的主要手段就是将明文信息进行加密处理再保存到数据库,这样就算被人拿到数据库也只能看到加密后的用户敏感信息。
由于用户敏感信息是以密文的形式保存在数据库中,所以在查询数据库时也只能使用密文作为查询条件。很明显,加密存储用户敏感信息的副作用是只能进行精确查询无法再进行模糊查询,例如我们只能查询某个具体电话号码,而不能查询以188开头的电话号码,所以是否加密存储用户敏感信息需要根据实际需求做出选择。
技术细节:
1、加密算法不能有随机元素,即相同的信息无论加密多少次密文都是不变的(这是数据库能查询记录的前提)。
2、必须有对应的解密算法,即能使用加密时的所用密钥逆向得到用户敏感信息明文。
3、如果是加密电话号码、身份证号码等固定长度的信息可以使用某种规则打乱顺序后再加密。