MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写
2023-09-14 09:04:40 时间
MySQL数据库中自带old_password(str)和password(str)函数,前者是MySQL323加密,后者是MySQLSHA1方式加密;
MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,就是说MySQLSHA1加密的密码的实际位数是40位;
MYSQL323对应于old_password(str)函数
MYSQLSHA1对应于password(str)函数
注:AES_ENCRYPT()加密函数和AES_DECRYPT()解密函数都需要一个“key”来协助加密。
eg:select aes_encrypt(kaka123,key);
select aes_decrypt(aes_encrypt(kaka123,key),key);
1.MYSQL323对应于old_password(str)函数加密:
mysql select old_password(kaka123); +-------------------------+ | old_password(kaka123) | +-------------------------+ | 2ee53a20184c9267 | +-------------------------+ 1 row in set, 1 warning (0.00 sec)
2.MYSQLSHA1对应于password(str)函数加密:
mysql select password(kaka123); +-------------------------------------------+ | password(kaka123) | +-------------------------------------------+ | *90B3D884FB6092549F244125549B77C000A0F9C6 | +-------------------------------------------+ 1 row in set (0.00 sec)
3.MYSQL MD5()加密:
mysql select md5(kaka123); +----------------------------------+ | md5(kaka123) | +----------------------------------+ | 5d052f1e32af4e4ac2544a5fc2a9b992 | +----------------------------------+ 1 row in set (0.00 sec)
4.AES_ENCRYPT()加密函数
mysql select aes_encrypt(kaka123,key); +------------------------------+ | aes_encrypt(kaka123,key) | +------------------------------+ | D#jA +------------------------------+ 1 row in set (0.00 sec)
5.AES_DECRYPT()解密函数
mysql select aes_decrypt(aes_encrypt(kaka123,key),key); +-------------------------------------------------+ | aes_decrypt(aes_encrypt(kaka123,key),key) | +-------------------------------------------------+ | kaka123 | +-------------------------------------------------+ 1 row in set (0.00 sec)
4.AES_ENCRYPT()加密函数
mysql select host,user,password from mysql.user; +----------------+------+-------------------------------------------+ | host | user | password | +----------------+------+-------------------------------------------+ | localhost | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | tony\_ts\_tian | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | 127.0.0.1 | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | ::1 | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | % | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | % | kaka | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +----------------+------+-------------------------------------------+ 6 rows in set (0.00 sec) mysql update mysql.user set password=AES_ENCRYPT("kaka123",key) where host=% and user=kaka; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql select host,user,password from mysql.user; +----------------+------+-------------------------------------------+ | host | user | password | +----------------+------+-------------------------------------------+ | localhost | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | tony\_ts\_tian | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | 127.0.0.1 | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | ::1 | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | % | root | *71ABCA8B06D46066CEF8062A75256E66243D0FC8 | | % | kaka | œDŸ#jAÂ | ¯Ll +----------------+------+-------------------------------------------+ 6 rows in set (0.00 sec)
5.AES_DECRYPT()解密函数
mysql select host,user,AES_DECRYPT(password,key) from mysql.user; +----------------+------+-----------------------------+ | host | user | AES_DECRYPT(password,key) | +----------------+------+-----------------------------+ | localhost | root | NULL | | tony\_ts\_tian | root | NULL | | 127.0.0.1 | root | NULL | | ::1 | root | NULL | | % | root | NULL | | % | kaka | kaka123 | +----------------+------+-----------------------------+ 6 rows in set (0.00 sec)
mysql不区分大小写:
修改MySql Server安装目录下的 my.ini 或my.conf文件
在mysqld节下加入下面一行 lower_case_table_names=0 (0:大小写敏感;1:大小写不敏感)最后重启一下MySql服务即可。 修改对于新建的表,老表无效
#解决mysql字段不区分大小写:
CREATE TABLE `user`( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT用户登录表主键id, `uname` VARCHAR(35) NOT NULL COMMENT用户登录名, `upass` VARCHAR(32) NOT NULL COMMENT用户登录密码, `ustatus` VARCHAR(2) NOT NULL DEFAULT 0 COMMENT用户登录状态,0为正常,1为锁定, UNIQUE (`uname`), PRIMARY KEY(`id`) )ENGINE = INNODB COLLATE=utf8_bin COMMENT=用户登录表;
注:COLLATE=utf8_bin
相关文章
- mysql数据库报错1146_关于MySQL报错:[ERR] 1146
- 对比MySQL:比对中英文数据库(mysql中英文)
- MySQL:著名的开放源码关系型数据库管理系统(mysql的全称)
- PHP专业连接MySQL:实现快速代码.(php连接mysql数据库代码)
- join探索MySQL中的Left Join功能(mysql中的left)
- Mysql 开发:精通数据库的技术(mysql开发)
- MySQL查询:查看数据表的总数(mysql查询表总数)
- MySQL连接URL:必要技能!(链接mysql的url)
- MySQL跨库查询:解锁数据库的新方式(mysql跨库查询)
- 的数据MySQL查询:洞察指定时期内的数据(mysql查询一段时间内)
- 数据库 从cmd中删除MySQL数据库.(cmd删除mysql)
- MySQL数据库的字符集支持一览(mysql支持的字符集)
- MySQL自关联:实现自身表数据的层级查询(mysql自关联)
- MySQL命令指南:成为数据库专家(mysql指令大全)
- 使用乐观锁在MySQL中实现数据并发控制(乐观锁mysql)
- 深度探索:DW如何连接MySQL数据库(dw连接mysql数据库)
- MySQL如何创建数据库?(mysql 如何创建数据库)
- 解决 MySQL 数据库误删问题的有效方法(mysql数据库误删)
- MySQL真的免费吗?一文让你了解MySQL的免费与付费版。(mysql免费么)
- MySQL数据库丢失了:慌乱中寻找解决方案(mysql数据库没有了)
- MySQL如何删除一个数据库(mysql删除一个数据库)
- MySQL简单教你实现两表连接查询(mysql 两表连接查询)
- 如何使用CMD命令行打开MySQL数据库(cmd怎样打开mysql)
- 深入MySQL探索其中一个参数(mysql 一个参数)
- MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问