数据加密字段加密

Netkiller Architect 手札

Multi-dimension Architecture Design & Implementation / Full Stack Architect

Mr. Neo Chan, 陈景峯(BG7NYT)

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)

原文发表时间:2017-05-27

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛肉圆粉不加葱

Spark Task 的执行流程④ - task 结果的处理

Spark Task 的执行流程③ - 执行 task一文中介绍了 task 是如何执行并返回 task 执行结果的,本文将进一步介绍 task 的结果是怎么处...

882
来自专栏cs

kali入侵windows

因为我是一个爱好和平的人(捂嘴笑),所以就在虚拟机中,创建二个系统,一个kali,一个windows xp,来进行这次入侵实验,以此迈入hacke的大门。 -...

29210
来自专栏Netkiller

数据库安全·数据加密

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

3525
来自专栏别先生

sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)

最新版下载地址:http://ftp.wayne.edu/apache/sqoop/1.4.6/

562
来自专栏积累沉淀

Storm UI详解

Storm ui 展示字段说明 Storm ui 首页主要分为4块: Cluster Summary,Topology summary,Superviso...

3638
来自专栏杨建荣的学习笔记

Oracle 12c Data Guard搭建(一) (r10笔记第57天)

对于使用12c的PDB,如果想尽快熟悉,掌握,那就是和业务挂钩,让它跑在业务上。当然是在能够基本驾驭它的前提下,要不就真成了甩手掌柜。11g可以玩得很好...

3409
来自专栏bboysoul

使用本地的docker客户端连接远程docker的守护进程

在这之前我们要知道docker是一个c/s架构的程序,也就是说我们输入的docker命令实际上是客户端用来发送指令给docker的守护进程的,所有的操作都是do...

522
来自专栏张戈的专栏

LVS+Keepalived负载均衡主备&双主架构全攻略

LVS+Keepalived 介绍 LVS LVS 是 Linux Virtual Server 的简写,意即 Linux 虚拟服务器,是一个虚拟的服务器集...

3544
来自专栏还债之路

门户网站磁盘占满,清除方法

本文参考:http://blog.51cto.com/oldboy/612351编著

813
来自专栏Python小屋

Python使用RSA+MD5实现数字签名

数字签名主要有防抵赖和防篡改两种功能:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名,二是能确定消息的完整性。 作为具体实现,发送报文...

3419

扫描关注云+社区