首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
V2EX  ›  MySQL

今天遇到个需求,需要加密数据库(MySQL)表中某些字段,比如手机号,该怎么做?

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

    大家的生产环境中的数据库表也都是加密 手机号吗?

    第一感觉没有这个必要, 加密手机号的操作应该是在应用层来做。

    或者问,要实现这样的数据库层面做,需要怎么做?

    (现在用的 Azure 上的 MySQL 服务)

    28 回复  |  直到 2019-05-13 19:32:52 +08:00
        1
    tt67wq   66 天前
    在数据库加密好点吧,如果被脱裤了起码拿不到手机号
    用个对称加密就行
        2
    xuanbg   66 天前
    敏感数据集中起来搞一个对象,然后序列化成 JSON 再对称加密后存储。要检索的话另外若干个字段分别存 MD5 就好了了。
        3
    wweir   66 天前
    应用层加密,数据库直接存加密后的数据
        4
    airfling   66 天前
    对称加密就可以了,我一般都是在程序中加密解密,然后保存到数据库中的是加密后的字段
        5
    xy2401   66 天前
    用视图可以做不?
        6
    julyclyde   66 天前   ♥ 1
    手机号做 hash 无意义
        7
    kiwier   66 天前
    md5 已不安全
        8
    liuzuo   66 天前
    HASH 一列+加密一列。
    HASH 用来查找,只能精确查找。
    加密用来反解。

    但如果是要求的列多或者服务多,是不是需要考虑 agent 模式。
        9
    dilu   66 天前
    我们是这样实现的 数据库存两个字段,一个加密后的,一个类似 salt 的东西,在 model 层封装好。

    然后有个单独的加密解密服务器专门做这个。再麻烦也得做,这种对我们公司来说是强需求。
        10
    Navee   66 天前
        12
    37Y37   66 天前
    应用层做,RSA 加密,包括连数据库的账号密码,以及数据库中的敏感数据
        13
    chenset   66 天前
    @Navee 我的库也是采用这种 aes 对称加密方式, 效果不错. 应用层和数据库层都有相同的实现, 非常方便. ORM 读写支持 get/set 过滤, 自动加解密. 爽的不行.
        14
    reid2017   66 天前
    @chenset 请教 ORM 如何自动加解密
        15
    mooncakejs   66 天前
    @reid2017 估计就是 getter 方法
        16
    chenset   66 天前
    @reid2017 ORM 一般都有字段过滤器 /拦截器 /getter setter. 除了写 orm where 条件之类的场景需要手动加解密, 其他都自动了
        17
    chenset   66 天前
    这个加密在过国.家等级保护的是必须的.
        18
    jeffdeng   66 天前
    @reid2017 扩展 mybatis 的 BaseTypeHandler 类
        19
    enaxm   66 天前
    @julyclyde
    表示接过的联通和移动的接口都是 hash 加密的...
        20
    jswh   66 天前
    用不对成加密之后寸数据库,密钥是通过内部接口发放的,需要向公司申请,只能再生产环境拿到。
        21
    ducklyl   66 天前
    用数据库自带的加密函数即可。
        22
    983081882   66 天前
    看到这个我就来吐槽了 我经历的一家公司 就把敏感字段用 base64 编码了一次 论糊弄人简直没有更坑的了
        23
    orangeade   66 天前 via Android
    单独字段,加版本号
    可以再搞个哈希字段方便快速查询
        24
    avenger   65 天前 via iPhone
    加密后怎么 like 查询?
        25
    cway   65 天前
    @avenger 我也,同问,可能不需要 like 查询
        26
    sagaxu   65 天前 via Android
    从大厂频繁被脱裤看,密码明文保存的都不少,何况是手机号?
        27
    wwek   65 天前
    @liuzuo 就是说的方案为佳
        28
    284716337   65 天前
    加密后保存,应用取数据的时候解密
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3856 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 09:36 · PVG 17:36 · LAX 02:36 · JFK 05:36
    ♥ Do have faith in what you're doing.