数据加密字段加密

Netkiller Architect 手札

4.20. 数据加密

数据库中有很多敏感字段,不允许随意查看,例如开发人员,运维人员,甚至DBA数据库管理员。另外加密主要是防止被黑客脱库(盗走)

敏感数据加密有很多办法,可以用数据库内部加密函数,也可以在外部处理后写入数据库。加密算法有很多种,但通常两类比较常用,一种是通过key加密解密,另一种是通过证书加密解密。

通常程序员负责写程序,程序交给运维配置,运维将key设置好,运维不能有数据库权限,DBA只能登陆数据库,没有key权限。

4.20.1. AES_ENCRYPT / AES_DECRYPT

这里介绍AES加密与解密简单用法

			mysql> select AES_ENCRYPT('helloworld','key');
+---------------------------------+
| AES_ENCRYPT('helloworld','key') |
+---------------------------------+
|                                 |
+---------------------------------+
1 row in set (0.00 sec)

mysql> select AES_DECRYPT(AES_ENCRYPT('helloworld','key'),'key');
+----------------------------------------------------+
| AES_DECRYPT(AES_ENCRYPT('helloworld','key'),'key') |
+----------------------------------------------------+
| helloworld                                         |
+----------------------------------------------------+
1 row in set (0.00 sec)

mysql>			

4.20.2. 加密字段

加密数据入库

			CREATE TABLE `encryption` (
	`mobile` VARBINARY(16) NOT NULL,
	`key` VARCHAR(32) NOT NULL
)
ENGINE=InnoDB;

INSERT INTO encryption(`mobile`,`key`)VALUES( AES_ENCRYPT('13691851789',md5('13691851789')), md5('13691851789')) 
select AES_DECRYPT(mobile,`key`), length(mobile) from encryption;			

这里方便演示将key 写入了数据库,实际应用key应该存储在应用程序配置文件中。通常能把获得key的人不应该用数据库权限。

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2015-11-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Netkiller

数据加密字段加密

Netkiller Architect 手札 Multi-dimension Architecture Design & Implementation / Fu...

3485
来自专栏

唉我好烦的呐啊

20611
来自专栏ascii0x03的安全笔记

Kali Linux安装TL-WN821N USB无线网卡驱动(make失败)

主要有下面几个步骤: 1.刚插上网卡,network-manager识别出来了网卡,也能搜索到WiFi,但就是连接不上。查看/var/log/syslog日志或...

3647
来自专栏Netkiller

数据库安全·数据加密

以下节选择《Netkiller Architect 手札》 作者:netkiller 地址 http://www.netkiller.cn/archit...

3605
来自专栏吴伟祥

Mysql 查看连接数,状态 最大并发数 && 怎么设置才合理

MySQL服务器的连接数并不是要达到最大的100%为好,还是要具体问题具体分析,下面就对MySQL服务器最大连接数的合理设置进行了详尽的分析,供您参考。  

813
来自专栏鬼谷君

企业级Docker私有仓库部署(https)

984
来自专栏禹都一只猫博客

kubernetes init流程概览

1095
来自专栏白驹过隙

OpenSSL - 利用OpenSSL自签证书和CA颁发证书

35217
来自专栏FreeBuf

Ruby OpenSSL 私钥伪造脚本

前段时间的openssl heartbleed 让我们心惊胆战的过了几天。 从用户数据泄露到 OpenSSL周边产品,从服务端到客户端, 从https 私钥...

1805
来自专栏owent

接入letsencrypt+全面启用HTTP/2

之前我的域名只有owent.net和www.owent.net买了SSL证书,现在有letsencrypt可以拿到免费的SSL签证,就稍微花了点时间把我的域名的...

832

扫码关注云+社区