mysql加密函数

MySQL敏感数据进行加密的几种方法 阅读详情

MySQL的加密和解密函数个人分为两类:
1.只支持正向加密不支持反向解密的函数:
MD5()、SHA1()|SHA()、SHA2()
针对此类加密的算法MySQL不提供解密,

但是我们可以通过网站
http://www.cmd5.com/ 反向解密。
改网站支持MD5、SHA、SHA256、SHA512等解密。


2.支持加密和解密的函数:
COMPRESS(),UNCOMPRESS():普通的加密和解密算法。
ENCODE(),DECODE():普通的加密和解密算法
DES_ENCRYPT(),DES_DECRYPT():支持DES算法的加密和解密。
AES_DECRYPT(),AES_ENCRYPT():支持AES算法的加密和解密。
ASYMMETRIC_ENCRYPT(),ASYMMETRIC_DECRYPT():签名加密和解密。
STATEMENT_DIGEST(),STATEMENT_DIGEST_TEXT():针对语句进行hash算法和反向解析。
3.第三类:
3.1
ASYMMETRIC_DERIVE()
ASYMMETRIC_SIGN()
ASYMMETRIC_VERIFY()
CREATE_ASYMMETRIC_PRIV_KEY() 创建私钥
CREATE_ASYMMETRIC_PUB_KEY()  创建公钥
3.2
CREATE_DH_PARAMETERS() 生成DH秘钥
CREATE_DIGEST()        字符串digest
PASSWORD()           返回加密的密码,此函数在MySQL8.0被移除。
RANDOM_BYTES()       生成随机向量值。
UNCOMPRESSED_LENGTH()  返回加密前的字符串长度。
VALIDATE_PASSWORD_STRENGTH() 密码强度的验证值。
上述加密算法中的 MD5(), SHA(), SHA1(), SHA2(),STATEMENT_DIGEST(), STATEMENT_DIGEST_TEXT().
返回的是ASCII字符,字符由参数character_set_connection和collation_connection决定。当设置为binary时则不受影响。
mysql> show variables like '%connection';
+---------------------------+--------------------+
| Variable_name             | Value              |
+---------------------------+--------------------+
| character_set_connection  | utf8mb4            |
| collation_connection      | utf8mb4_unicode_ci |
| default_master_connection |                    |
+---------------------------+--------------------+
3 rows in set (0.001 sec)
示例:
1.MD5加密
mysql> select md5('123456') MD5;
+----------------------------------+
| MD5                              |
+----------------------------------+
| e10adc3949ba59abbe56e057f20f883e |
+----------------------------------+
1 row in set (0.00 sec)
MD5返回的字符串是32bit的,若要存储的话可以使用char(32).
若要将这类信息转换为16进制的复杂格式,可以使用UNHEX()函数和binary(16)存储。
mysql> create table wuhan.t_md5 as select unhex(md5('123456')) hex_md5;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0
mysql> select * from wuhan.t_md5;
+------------------+
| hex_md5          |
+------------------+
| 9IV       |
+------------------+
1 row in set (0.00 sec)
mysql> desc wuhan.t_md5;
+---------+---------------+------+-----+---------+-------+
| Field   | Type          | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| hex_md5 | varbinary(64) | YES  |     | NULL    |       |
+---------+---------------+------+-----+---------+-------+
1 row in set (0.00 sec)
2.SHA 加密:SHA等同于SHA1,SHA加密算法比MD5更加安全。
mysql> select sha('123456');
+------------------------------------------+
| sha('123456')                            |
+------------------------------------------+
| 7c4a8d09ca3762af61e59520943dc26494f8941b |
+------------------------------------------+
3.SHA2加密:
SHA2(str, hash_length)
hash_length支持的值224, 256, 384, 512, or 0。0等同于256.
mysql> select sha2('123456',0) A,sha2('123456',256) B\G   
*************************** 1. row ***************************
A: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
B: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
1 row in set (0.01 sec)
预计国内很多中小创业公司,和一些IT公司可能使用的加密算法就是上面的几种。
本人在网上收集到的一些密码,可以看到大部分的国人使用的密码都很简单,很容易猜测和密码碰撞到的。
Password_encrypt                  peoples  plain_text  
--------------------------------  -------  ------------
e10adc3949ba59abbe56e057f20f883e     1735  123456      
c33367701511b4f6020ec61ded352059       67  654321      
21218cca77804d2ba1922c33e0151105       54  888888      
670b14728ad9902aecba32e22fa4f6bd       49  000000      
96e79218965eb72c92a549dd5a330112       30  111111      
f379eaf3c831b04de153469d1bec345e       22  666666      
25d55ad283aa400af464c76d713c07ad       20  12345678    
25f9e794323b453885f5181f1b624d0b       19  123456789   
e35cf7b66449df565f93c607d5a81d09       16  456789      
fcea920f7412b5da7be0cf42b8c93759       14  1234567
排名前十的密码,占比密码取样的25%。

 

 

 

AES_ENCRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以BLOB类型存储
AES_DECRYPT(str,key)  返回用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key)   使用key作为密钥解密加密字符串str
ENCRYPT(str,salt)   使用UNIXcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str
ENCODE(str,key)   使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储
MD5()    计算字符串str的MD5校验和
PASSWORD(str)   返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法。
SHA()    计算字符串str的安全散列算法(SHA)校验和
示例:
SELECT ENCRYPT('root','salt');
SELECT ENCODE('xufeng','key');
SELECT DECODE(ENCODE('xufeng','key'),'key');#加解密放在一起
SELECT AES_ENCRYPT('root','key');
SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'key');
SELECT MD5('123456');
SELECT SHA('123456');

MySQL中的加密函数 函数在 MySQL 中通常用于创建用户时对密码进行加密。例如,当你想创建一个新的 MySQL 用户时,你可以使用。是用户的原始密码,MySQL 会自动对其进行加密。注意:从 MySQL 5.7.6 开始,本文简单介绍MySQL中的加密函数。可以解密外,其他的都是不可逆的。函数已被废弃,建议使用更安全的。注意:以上加密函数除了。函数来加密用户的密码。会返回加密后的密码。 阅读详情

相关推荐

使用MySQL的加密和解密方法详解

本文介绍了在MySQL中使用AES_ENCRYPT和AES_DECRYPT函数进行对称加密和解密操作,以及使用SHA2函数进行散列加密的方法。在上面的示例中,我们创建了一个名为encrypted_data的表,其中包含一个用于存储加密数据的列。然后,我们使用AES_ENCRYPT函数将敏感数据加密,并将加密后的数据插入到表中。上面的示例中,我们创建了一个名为hashed_data的表,其中包含一个用于存储数据的列和一个用于存储散列值的列。最后,我们查询表中的数据,并使用IF函数验证数据的散列值是否有效。

VcyReact的博客 5709

mysql加解密操作函数

mysql的加解密操作函数

weixin_50998273的博客 5587

Springboot 使用mysql加密解密函数 (数据加密篇 三)

最近项目组开始关注一些敏感数据的明文相关的事宜 , 其实这些东西也是都有非常成熟的解决方案。 既然最近着手去解决这些事情,那么也顺便给还未了解的大伙普及一下。 这个系列就暂短的分成两篇 : 第一篇 yml配置文件里敏感数据的加密 第二篇 传入数据敏感数据的加密存储 第三篇 使用mysql加解密函数轻松实现 本篇是第三篇 ,完全基于mysql来完成,和前面两篇瓜葛不大。 正文 这篇就非常简单直接了 。 1.前提要求 ,把需要加密存储的数据...

默默不代表沉默 5627

MySQL:函数

日期和时间函数 1. CURDATE() 返回当前日期 只包含年、月、日部分,格式为YYYY-MM-DD; 2. CURTIME() 返回当前时间 只包含时、分、秒部分,格式为HH:MM:SS 3. MONTH(d)返回日期d中的月份值,范里是1~12 4. NOW()函数 返回当前日期和时间 包含年、月、日、时、分、秒,格式为YYYY-MM-DD HH:MM:SS

ChinaDragon10的博客 2209

LabVIEW状态机实战:用STM32+DHT11搭建温湿度监测系统(附完整VI源码)

本文详细介绍了如何利用LabVIEW状态机模式与STM32微控制器、DHT11温湿度传感器构建温湿度监测系统。通过硬件选型、状态机设计、LabVIEW程序实现及系统优化等环节,提供了一套完整的解决方案,并附有VI源码,助力开发者快速实现嵌入式温湿度监测应用。

weixin_42549723的博客 520

告别轮询!手把手教你用S32K3的FlexCAN Enhanced FIFO+DMA实现高效CAN FD数据接收

本文详细介绍了如何利用S32K3芯片的FlexCAN Enhanced FIFO与DMA组合方案,实现高效CAN FD数据接收,彻底告别传统轮询和中断模式。通过深度缓冲、智能过滤和DMA联动技术,该方案在5Mbps高负载场景下将CPU占用率从42%降至3%以下,显著提升系统实时性和吞吐量。

weixin_30906185的博客 502

Mysql中的加密函数

一加密函数PASSWORD(str) mysql> select password('newpwd'); +-------------------------------------------+ | password('newpwd') | +-------------------------------------------+ | *...

实践求真知 968

MineMap开发教程: 北斗网格位置码实时调度技术详解

本文介绍了MineMap4.0引擎中北斗网格位置码的实时调度技术。北斗网格位置码是我国自主研发的空间位置编码标准,具有层次化结构、三维编码等特点。MineMap4.0通过BeiDouGrid类实现了高效的实时调度机制,重点展示了按预想高度进行网格调度的核心功能。关键技术包括视锥体裁剪、LOD控制、高度筛选算法和交互式查询等。该技术在智慧城市、环境监测等领域具有广泛应用前景,凭借高性能、高精度等优势,为三维地理信息可视化提供了有力支撑。

weixin_42568040的博客 1443

利用MySQL数据库自带加密函数进行加密

MySQL数据库自带了加密和解密函数,可以对数据进行加密和解密。加密函数是MySQL中用来对数据进行加密的函数,而解密函数是MySQL中用来对数据进行解密的函数.1.首先,先介绍下加密函数,PASSWORD(string)函数可以对字符串string进行加密,代码如下:SELECT PASSWORD('you');如下图所示:2.执行第一步的SQL语句,查询结果是一串字符串,并且PASSWORD(...

专注技术难点,学无止境 1万+

Uniapp+Vue3+Monorepo:如何优化你的前端开发流程(附完整配置代码)

本文详细介绍了如何利用Uniapp+Vue3+Monorepo技术栈优化前端开发流程,提升代码可维护性和团队协作效率。通过Monorepo架构实现依赖管理智能化、代码复用最大化和构建流程统一化,结合完整配置代码和实战指南,帮助开发者快速构建高性能跨端应用。

weixin_29011993的博客 453

[V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)

本文简要介绍了CPU虚拟化架构的基础知识。

基层架构师的分享 1267

mysql中的加密函数以及在高版本中被移除的加密函数

加密函数是MySQL用来对数据进行加密的函数。

weixin_54401017的博客 930

Allegro老鸟的20年效率秘籍:用YepEda Skill脚本实现PCB设计全流程自动化

本文分享了Allegro资深工程师20年效率秘籍,通过YepEda Skill脚本实现PCB设计全流程自动化。从封装建库到规则配置,再到DFM审核,YepEda Skill大幅提升设计效率,每天节省至少4小时重复劳动。文章详细解析了自动化工具链的核心功能,并提供了实战技巧和量化对比数据。

weixin_42546392的博客 239

MySQL 中的单向加密函数

介绍MySQL中常用的单向加密函数,并给出使用示例。

qq_38234015的博客 503

当OTN网络遭遇LOS告警:5个运维老手才知道的故障定位技巧(含CA动作对照表)

本文深入解析OTN网络中LOS告警的实战定位技巧,涵盖光功率深度诊断、模块差异分析及核心的CA动作机制。通过逆向追踪告警流与对照速查表,帮助运维人员快速锁定故障段落,区分硬软故障,并掌握系统健康度评估方法,从而提升排障效率与网络稳定性。

weixin_29266007的博客 552

uniapp [全端兼容] - 实现内网使用天地图离线地图,详解项目加载天地图的离线地图服务器部署与使用教程示例源码,Uniapp如何实现天地图的离线加载部署在内网访问(兼容H5、微信小程序、App)

uniapp天地图如何离线访问,无需网络调用天地图API,天地图离线地图,天地图——内网使用离线地图,uniapp中加载天地图的离线地图,uniAPP实现天地图离线访问,在内网中无法直接使用外网天地图资源怎么办,在uni-app中加载地图 -使用天地图的瓦片数据。UNIAPP天地图离线怎么使用,内网部署天地图,天地图离线瓦片,部分瓦片数据,天地图如何离线,下载天地图离线服务,并用Uniapp+天地图离线部署,天地图私有化部署,实现离线加载天地图,Java+uniapp天地图离线开发,uniapp项目中无网络

🏆 前端领域优质创作者 4902

MySQL 常用函数 加密函数

MySQL 常用函数 加密函数

wang_shuai_long的博客 584

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mysql加密函数的用法已经怎么自定义函数

请确保将-lmysqlclient参数添加到链接器选项中,以便链接到MySQL的客户端库。但是,你可以使用MySQL的用户定义函数(UDF)来创建一个加密和解密函数。用户定义函数允许你使用C或C++编写自定义的函数逻辑,并将其集成到MySQL中。请确保将-lmysqlclient参数添加到链接器选项中,以便链接到MySQL的客户端库。用户定义函数允许你使用C或C++编写自定义的函数逻辑,并将其集成到MySQL中。与MD5()函数类似,它将输入字符串作为参数,并返回一个固定长度的十六进制字符串。

zz_ll9023的博客 565

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MYSQL——5.加密函数

insert into user_cs values(1 , '哥' ,md5('123456'));-- password算法加密 password(str) mysql数据库密码就是用这个加密的。-- user() 查询用户 查询到的是你登录的用户名 加上@ IP地址。为字符串算出一个MD5的32位的字符串。常用于用户密码加密。select md5('石') from dual;-- database() 数据库名称。-- 添加一个测试表。

m0_48261292的博客 339

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MySQL-- 函数(单行函数): 流程控制函数,加密与解密的函数,MySQL信息函数,其他函数

MySQL-- 函数(单行函数): 流程控制函数,加密与解密的函数,MySQL信息函数,其他函数

THRUSTER11111的博客 1254

php调用mysql加密函数_mysql加密函数有哪些?

mysql加密函数有:1、【DECODE(str,key)】使用key作为密钥解密加密字符串str;2、【AES_DECRYPT(str,key)】返回用密钥key对字符串str利用高级加密标准算法解密后的结果。mysql加密函数有:1、AES_ENCRYPT(str,key):返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以B...

weixin_42395823的博客 146

mysql内置加密函数对数据加密

1 目的 有些业务场景,数据库中的敏感数据需要存储为密文形式,这里使用mysql内置加密函数对数据进行加密。 2 加密算法 对称加密算法:AES 加密后数据转换为:十六进制 3 内置函数说明 函数 说明 AES_ENCRYPT(字符串,秘钥) 加密函数 AES_DECRYPT(字符串,秘钥) 解密函数 HEX(二进制字符串) 二进制转十六进制 UNHEX(十六进制字符串) 十六进制转 二进制 4 加密、解密入口 自定义mysql函数。使用自定义函数进行加密和解密,当前需要更改

weixin_55891090的博客 2192

mysql加密解密函数

mysql下的加密函数有如下几个1、PASSWORD():创建一个经过加密的密码字符串,适合于插入到MySQL的安全系统。该加密过程不可逆,和unix密码加密过程使用不同的算法。主要用于MySQL的认证系统。2、ENCRYPT(,):使用UNIX crypt()系统加密字符串,ENCRYPT()函数接收要加密的字符串和(可选的)用于加密过程的salt(一个可以唯一确定口令的字符串,就像...

diejiankuai3444的博客 582

MySQL双向加密和单项加密函数

双向加密就让我们从最简单的MySQL加密开始:MySQL双向加密。在这里,一段数据通过一个密钥被加密,只能够由知道这个密钥的人来解密。MySQL有两个函数来支持这种类型的加密,分别叫做ENCODE()和DECODE()。下面是一个简单的实例:mysql> INSERT INTO users (username, password) VALUES (joe, ENCODE(guessm

jiangxinyu的专栏 4269

mysql 8 加密函数_8.1. MySQL 加密函数

8.1.2.通过PHP mcrypt 函数加密解密MySQL数据库由于AES_DECRYPT()与AES_ENCRYPT()会耗费一部们数据库资源,于是我想出在外部实现AES_DECRYPT/AES_ENCRYPT同时完全兼容mysql。MySQL AES_ENCRYPT() 加密,通过 PHP mcrypt_decrypt() 解密PHP mcrypt_encrypt 加密,通过MySQL A...

weixin_36231975的博客 892

MySQL加密/压缩函数

在MySQL中,加密和压缩函数返回二进制串。对其中的许多函数而言,结果可能包含任意的字节值,如果想存储这些结果,你应该使用一个具有varbinary或者blob二进制串数据类型的列,这可避免潜在的删除尾部空白问题或者字符集转换问题。这些问题可能导致数据值的改变。一般而言,上述问题可能在你使用非二进制串数据类型(如char,varchar,text等数据类型)的情况下发生。AES_E

1324
上一篇: MySQL中explain的type类型
下一篇: Mysql中MVCC的使用及原理详解
xinyuan_java
博客等级 码龄12年 181粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值