aes_encrypt()和aes_decrypt()在mysql中是进行加密了,我们今天一起来和各位看看关于mysql中aes_encrypt()和aes_decrypt()函数的使用例子.

如果你需要对mysql某些字段进行加解密的话,使用mysql的加解密函数可能比程序中处理更方便.

mysql-encrypt-funcs.png以aes_encrypt()和aes_decrypt()为例

特别需要注意的时mysql5.5及以下的版本仅支持aes-128-ecb模式,如果需要其它模式需要mysql5.6及以上版本才支持,可通过mysql全局变量如下方式指定:

mysql> SET block_encryption_mode = 'aes-256-cbc';

mysql> SET @key_str = SHA2('My secret passphrase',512);

mysql> SET @init_vector = RANDOM_BYTES(16);

mysql> SET @crypt_str = AES_ENCRYPT('text',@key_str,@init_vector);

mysql> SELECT AES_DECRYPT(@crypt_str,@key_str,@init_vector);

-----------------------------------------------

| AES_DECRYPT(@crypt_str,@key_str,@init_vector) |

-----------------------------------------------

| text                                          |

-----------------------------------------------

参考文档如下:

https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_aes-encrypt

http://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html#function_aes-encrypt

关于加密的二进制数据在mysql中字段存什么类型(存blob还是varbinay类型)?

引用文档一段话:

Many encryption and compression functions return strings for which the result might contain arbitrary byte values. If you want to store these results, use a column with a VARBINARY or BLOB binary string data type. This will avoid potential problems with trailing space removal or character set conversion that would change data values, such as may occur if you use a nonbinary string data type (CHAR, VARCHAR, TEXT).

尽量使用blob类型,原因如下:

There is no trailing-space removal for BLOB columns when values are stored or retrieved.

For indexes on BLOB columns, you must specify an index prefix length.

BLOB columns can not have DEFAULT values.

二进制数据如何使用sql插入?

不可直接拼接sql插入,否则会被当成字符串处理,不可你可以将二进制数据转换程十六进制或base64插入,相应的,取出来的时候你也需要转换。但是通过mysql prepared statement方式可以插入stream data,如php pdo可以类似如下实现:

$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');

$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");

$id = get_new_id(); // some function to allocate a new ID

// assume that we are running as part of a file upload form

// You can find more information in the PHP documentation

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);

$stmt->bindParam(2, $_FILES['file']['type']);

$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();

$stmt->execute();

$db->commit();

mysql aes encrypt_mysql加密函数aes_encrypt()和aes_decrypt()使用教程相关推荐

  1. php 加密保存mysql_PHP及MYSQL中字符串加密函数

    [IT168 服务器学院]我们在写PHP程序时经常要对用户的口令加密以确保安全,这时就要用到一些加密的函数.我总结了以下几种方法写出来供大家参考. 1.用MYSQL中的加密函数来加密:PASSWORD ...

  2. mysql aes encrypt_MySQL如何正确地利用AES_ENCRYPT()与AES_DECRYPT()加解密

    本文主要给大家介绍了关于MySQL利用AES_ENCRYPT()与AES_DECRYPT()加解密的正确方法,MySQL中AES_ENCRYPT('密码','钥匙')函数可以对字段值做加密处理,AES ...

  3. mysql内置加密函数_MySQL数据库内置加密函数总结

    首先,我认识的加密函数有以下几个: password(plainText):旧版(OLD_PASSWORD())加密后长度16位,新版41位select length(password("1 ...

  4. mysql信息函数和加密函数_MYSQL 常用函数(数学、字符串、日期时间、系统信息、加密)...

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 ...

  5. MYSQL加密解密 中文、数字 AES_ENCRYPT,AES_DECRYPT

    MYSQL加密解密AES_ENCRYPT,AES_DECRYPT 废话不多说,先演示非中文方式 错误示范:>>>>>>>>>>>> ...

  6. c mysql加密解密_mysql内置加密函数对数据加密

    1 目的 有些业务场景,数据库中的敏感数据需要存储为密文形式,这里使用mysql内置加密函数对数据进行加密. 2 加密算法 对称加密算法:AES 加密后数据转换为:十六进制 3 内置函数说明 函数 说 ...

  7. 技术分享 | 详解SQL加密函数:AES_ENCRYPT()

    作者:岳明强 爱可生北京分公司 DBA 团队成员,人称强哥,负责数据库管理平台的运维和 MySQL 问题处理.擅长对 MySQL 的故障定位. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授 ...

  8. Mysql中常用的函数汇总

    Mysql中常用的函数汇总: 一.数学函数 abs(x) 返回x的绝对值 bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制) ceiling(x) 返回大于x的最小整数值 exp(x ...

  9. MySQL数据库中arg函数_数据库函数有哪些

    数据库函数有:1.数学函数[abs(x).bin(x)]:2.聚合函数[avg(col)]:3.字符串函数[ascii(char)]:4.日期和时间函数[curdate()]:5.加密函数[decod ...

最新文章

  1. MindSpore技术理解(下)
  2. c++如何让程序异常以后继续执行_微信商城小程序开发首页广告如何布局?c
  3. sharepoint2010网站根据权限隐藏ribbon
  4. Qt连接Myql的那些事,关于QT连接报错driverNoLoad问题
  5. Python读写与追加excel文件
  6. 排队论是计算机科学新分支,(计算机科学的分支领域体系.doc
  7. Java并发编程之CAS和AQS
  8. 关于tkinter.Canvas 不显示图片的问题
  9. 高考色彩静物组合想要画好?画之前注意下这8点:
  10. 世间最珍贵的... (外一篇)
  11. ps 修改透明图片上的文字,修改图片大小,导出PNG
  12. JavaScript五子棋
  13. 计算机在职博士要考吗,在职博士容易考吗?
  14. 祝母亲身体健康,节日快乐
  15. python arcade库_python游戏库:Arcade教程(4)
  16. ArcGIS出图时如何制作花式边框
  17. Android简单、高性能的高斯模糊(毛玻璃)效果(附源码)
  18. 10款网站后台管理系统模板_bootstrap网站后台模板_html后台模板下载(四)
  19. 自动分割mp3等音频视频文件的脚本
  20. 阻塞式回调函数和延迟式回调函数

热门文章

  1. mysql业务数据库回退_理解MySQL数据库事务-隔离性
  2. 华为仿苹果字体_华为mate40系列再次霸榜DXO,网友:无敌是多么寂寞
  3. 利用SQL语句对数据进行操作:插入、更新与删除数据行
  4. Python3.x字符串替换方法replace()、maketrans()和translate()
  5. Python 打开文件注意事项
  6. Windows10配置CUDA10.0+cudnn7.5.1
  7. Linux命令 umask,chmod使用
  8. opencv1-加载、修改、保存图像
  9. Pytest标记用例失败之xfail
  10. [Git GitHub] Windows下安装git,从0开始搭建git环境(配置环境变量+设置git-ssh key...配置)(超全版)