数据加密字段加密

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 条评论
登录 后参与评论

相关文章

来自专栏安智客

Key attestation的几个关键点!

Key attestation就是密钥认证,之前介绍过: Key attestation-Google的密钥认证 下图是Google Android密钥认证的架...

4107
来自专栏小工匠技术圈

【小工匠聊密码学】--密码学--综述

902
来自专栏Java架构沉思录

深入浅出密码学(下)

前言 在之前的文章《深入浅出密码学(上)》与《深入浅出密码学(中)》,笔者为大家介绍了密码学中的加密、单向散列函数与消息认证码的概念与应用。这里带大家简单回顾一...

3126
来自专栏Netkiller

数据库安全·数据加密

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

3525
来自专栏微信终端开发团队的专栏

基于TLS1.3的微信安全通信协议mmtls介绍

编者的话:近年来网络安全事件层出不穷,确保亿万用户的安全隐私是我们微信义不容辞的责任。当然,我们更要保证用户稳定、快速的聊天体验,所以我们有了mmtls。文章干...

53010
来自专栏学海无涯

一篇文章搞定密码学基础

密码技术是网络安全的基础,也是核心。现在对隐私保护、敏感信息尤其重视,所以不论是系统开发还是App开发,只要有网络通信,很多信息都需要进行加密,以防止被截取篡改...

3479
来自专栏大内老A

[WCF安全系列]认证与凭证:X.509证书

在《上篇》中,我们谈到了常用的认证方式:用户名/密码认证和Windows认证。在下篇中,我们着重来介绍另外一种重要的凭证类型:X.509证书,以及针对X.509...

16710
来自专栏Jackson0714

WCF安全2-非对称加密

2596
来自专栏Coding01

通过 Laradock 学 Docker —— 配置篇

众所周知docker https://www.docker.com 是当前最火热的容器引擎,因为沙盒特性,即插即用和快速方便的部署能力受到广大用户的喜爱。

924
来自专栏IT开发技术与工作效率

公式流程图时序图.md 测试

1173

扫描关注云+社区