浅谈MySQL对指定字段进行加密

来源:互联网 发布:2016软件测试薪资 编辑:程序博客网 时间:2024/04/29 09:56

首先我们来认识一下blob类型的数据

BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。 MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K Medium。

首先我们创建我们需要使用到的表格
这里写图片描述

双向加密

我们向其中插入一条数据:

INSERT INTO pwn (NAME, VALUE)VALUES    (        'worker',        ENCODE('pual', 'abcd')    );

按普通方式查看记录:
这里写图片描述

我们要怎么操作才能看到我们刚才存进去的value值呢?

 SELECT name, DECODE(VALUE, 'abcd') as value FROM pwn WHERE name='worker';

结果:

这里写图片描述

这就是所谓的双向加密,既可以对数据进行加密,也可以对数据进行解密

单向加密

所谓的单向加密就是只能对数据进行加密,但是颠倒,也就是不能对已经加密的数据再转换为我们能识别的内容;

你肯定要问了,这个有什么用啊?

采用这种加密方法就保证了这个数据就只有用户一个人可以知道了,其他人永远无法知道,但是使用双向加密的话,只要别人知道加密密钥就可以还原加密字段;

我们使用MD5函数,再插入一条记录

INSERT pwn VALUES("Tom ",MD5("cccdd"));

查询:

SELECT * FROM pwn WHERE name='tom';

结果:
这里写图片描述

你也可以使用这个函数ENCRYPT

SQL
INSERT pwn VALUES("Lucy",ENCRYPT("tttt","abcd"));

使用这个函数查询出来的结果解释NULL,如图

这里写图片描述

我们还可以使用这个函数:

INSERT pwn VALUES("Jack",AES_ENCRYPT("jack","ccdd"));

这里写图片描述

还可以使用这个函数AES_DECRYPT(crypt_str,key_str)

SQL:INSERT pwn VALUES("Pual",AES_DECRYPT("jack","ccdd"));

这里写图片描述

1 0
原创粉丝点击