我使用AES加密敏感文本标记并将其存储在数据库中。我想部分搜索这些令牌,而不仅仅搜索完全匹配。 解密所有令牌会太慢,所以我的想法是将令牌的开头作为明文保存在数据库的另一列中。
令牌为90个字符,对每个用户都是唯一的。我会存储例如20个第一个字符。
如果有人获得了数据库的副本,这是一个安全问题,我的意思是重建具有明确部分的完整令牌会更容易吗?
我的AES加密设置为:
答案 0 :(得分:3)
为每个值(或每个值的第一部分,如果它们很长)创建一个哈希值,例如具有10,000次迭代的PBKDF2的前20个字节,并将其存储为单独的字段/列。要检查值,请执行相同的操作并针对新字段进行检查。新字段中的值不可逆,比较操作便宜(直接二进制比较)。