大家的生产环境中的数据库表也都是加密 手机号吗?
第一感觉没有这个必要, 加密手机号的操作应该是在应用层来做。
或者问,要实现这样的数据库层面做,需要怎么做?
(现在用的 Azure 上的 MySQL 服务)
![]() | 1 tt67wq 2019-05-13 09:48:09 +08:00 在数据库加密好点吧,如果被脱裤了起码拿不到手机号 用个对称加密就行 |
![]() | 2 xuanbg 2019-05-13 09:54:01 +08:00 敏感数据集中起来搞一个对象,然后序列化成 JSON 再对称加密后存储。要检索的话另外若干个字段分别存 MD5 就好了了。 |
![]() | 3 wweir 2019-05-13 09:55:49 +08:00 应用层加密,数据库直接存加密后的数据 |
4 airfling 2019-05-13 10:00:23 +08:00 对称加密就可以了,我一般都是在程序中加密解密,然后保存到数据库中的是加密后的字段 |
6 julyclyde 2019-05-13 10:55:59 +08:00 ![]() 手机号做 hash 无意义 |
![]() | 7 kiwier 2019-05-13 10:58:07 +08:00 md5 已不安全 |
8 liuzuo 2019-05-13 11:05:17 +08:00 HASH 一列+加密一列。 HASH 用来查找,只能精确查找。 加密用来反解。 但如果是要求的列多或者服务多,是不是需要考虑 agent 模式。 |
9 dilu 2019-05-13 11:10:44 +08:00 我们是这样实现的 数据库存两个字段,一个加密后的,一个类似 salt 的东西,在 model 层封装好。 然后有个单独的加密解密服务器专门做这个。再麻烦也得做,这种对我们公司来说是强需求。 |
10 Navee 2019-05-13 11:10:55 +08:00 ![]() |
![]() | 11 ihacku 2019-05-13 11:17:36 +08:00 |
12 37Y37 2019-05-13 11:17:59 +08:00 应用层做,RSA 加密,包括连数据库的账号密码,以及数据库中的敏感数据 |
![]() | 13 chenset 2019-05-13 11:27:00 +08:00 @Navee 我的库也是采用这种 aes 对称加密方式, 效果不错. 应用层和数据库层都有相同的实现, 非常方便. ORM 读写支持 get/set 过滤, 自动加解密. 爽的不行. |
15 mooncakejs 2019-05-13 11:39:20 +08:00 @reid2017 估计就是 getter 方法 |
![]() | 16 chenset 2019-05-13 11:44:40 +08:00 @reid2017 ORM 一般都有字段过滤器 /拦截器 /getter setter. 除了写 orm where 条件之类的场景需要手动加解密, 其他都自动了 |
![]() | 17 chenset 2019-05-13 11:46:22 +08:00 这个加密在过国.家等级保护的是必须的. |
![]() | 20 jswh 2019-05-13 14:23:30 +08:00 用不对成加密之后寸数据库,密钥是通过内部接口发放的,需要向公司申请,只能再生产环境拿到。 |
21 ducklyl 2019-05-13 14:40:55 +08:00 用数据库自带的加密函数即可。 |
22 983081882 2019-05-13 14:56:03 +08:00 看到这个我就来吐槽了 我经历的一家公司 就把敏感字段用 base64 编码了一次 论糊弄人简直没有更坑的了 |
![]() | 23 orangeade 2019-05-13 15:11:40 +08:00 via Android 单独字段,加版本号 可以再搞个哈希字段方便快速查询 |
![]() | 24 avenger 2019-05-13 18:23:00 +08:00 via iPhone 加密后怎么 like 查询? |
![]() | 26 sagaxu 2019-05-13 19:11:32 +08:00 via Android 从大厂频繁被脱裤看,密码明文保存的都不少,何况是手机号? |
![]() | 28 284716337 2019-05-13 19:32:52 +08:00 加密后保存,应用取数据的时候解密 |
29 kilvn 2020-10-13 19:38:16 +08:00 |
![]() | 30 lskjdfgl 2021-07-15 15:54:25 +08:00 用数据库的对称加密,还可以做模糊搜索,如果用程序做只能精确搜索了 |