V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

有没有什么性价比比较高的对称加密算法,适合用于关系型数据库的逐行加密?

  •  1
     
  •   LeeReamond · 335 天前 · 983 次点击
    这是一个创建于 335 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,需求是有一客户端业务,希望进行一个加密,防止低成本破解。目前想法是服务端生成秘钥,每次客户端读取数据就重新获取一次 token 。

    问题是,希望能在加密的同时保证一定程度的关系型数据库的能力,比如获取主键范围 10-100 的 90 行数据,不用进行整个数据库的加密和解密。

    数据量不是很大,大概十万行以内,每行几十列。有合适的加密算法适合逐行加密吗,可以做到不给客户端太大的卡顿?

    10 条回复    2021-06-25 11:48:40 +08:00
    kxjhlele
        1
    kxjhlele  
       335 天前 via Android
    用程序加密数据在插入数据库不就好了,
    LeeReamond
        2
    LeeReamond  
    OP
       335 天前
    @kxjhlele 每行都需要加密解密,需要一个时间和空间复杂度都合适的算法
    kxjhlele
        3
    kxjhlele  
       335 天前 via Android
    支持 avx 加速的,随便哪个都足够你用了,才 10 万行,几十列,us 秒级别的
    LeeReamond
        4
    LeeReamond  
    OP
       335 天前
    @kxjhlele 大佬有没有连接指个路。搜 avx 加速+加密算法没有什么有效信息
    min
        5
    min  
       335 天前   ❤️ 1
    snoopyhai
        6
    snoopyhai  
       335 天前 via Android
    我想知道,这样加密,你不模糊搜索了么?
    3dwelcome
        7
    3dwelcome  
       335 天前
    客户端加什么密哦。

    因为在客户端加密,然后客户端解密,安全性都是自我安慰。远不如服务器对数据加密,客户端解密来的安全。
    LeeReamond
        8
    LeeReamond  
    OP
       335 天前 via Android
    @3dwelcome 是服务端加密,只不过解密既然放到前端总是有办法解的,成本问题
    3dwelcome
        9
    3dwelcome  
       335 天前
    @LeeReamond 有服务器就比较好办。

    如果是我的话,加密时,服务器提供按照 TableName + RowID 组合生成对应每条记录的密钥 API,并对数据库内容进行加密。

    前端解密时,通过访问服务器 API 获取单条数据的解密密钥。这样就没办法直接拖库了。
    3dwelcome
        10
    3dwelcome  
       335 天前
    至于具体的算法,都写在 TLS 规范里的。

    个人推荐 google 的 ChaCha20,因为足够简单,JS 可实现。

    当然有条件调用 CPU 硬件加速,AES 应该是首选。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2868 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 11:51 · PVG 19:51 · LAX 04:51 · JFK 07:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.