mysql加密函数
Ⅰ 数据库常用函数
1、系统信息函数
系统信息函数用来查询Mysql数据库的系统信息。
函数代码:
SELECT VERSION()
->5.0.67-community-nt
CONNECTION_ID() 返回服务器的连接数
DATABASE()、SCHEMA 返回当前数据库名
USER()、SYSTEM_USER()返回当前用户
2、日期时间函数
MySQL的日期和时间函数主要用于处理日期时间。
函数代码:
CURDATE(),CURRENT_DATE() curdate() 返回当前日期
SELECT CURDATE()
->2014-12-17
CURTIME(),CURRENT_TIME curtime()
返回当前时间
SELECT CURTIME()
->15:59:02
3、字符串函数
函数代码:
CHAR_LENGTH(s) char_length()返回字符串s的字符数
SELECT CHAR_LENGTH('你好123') -- 5
CONCAT(s1,s2,...) concat(s1,s2...)
将字符串s1,s2等多个字符串合并为一个字符串
4、加密函数
加密函数是MySQL用来对数据进行加密的函数。
函数代码:
PASSWORD(str)
该函数可以对字符串str进行加密,一般情况下,PASSWORD(str)用于给用户的密码加密。
SELECT PASSWORD('123')
->*
5、数学函数
数学函数主要用于处理数字,包括整型、浮点数等。
函数代码:
ABS(x) abs(x)返回x的绝对值
SELECT ABS(-1) -- 返回1
CEIL(x),CEILING(x) cell(x),celling(x)
返回大于或等于x的最小整数
SELECT CEIL(1.5) -- 返回2
Ⅱ mysql 数据库的 登录密码的 加密方式是什么
MySQL数据库的认证密码有两种方式,
MySQL
4.1版本之前是MySQL323加密,MySQL
4.1和之后的版本都是MySQLSHA1加密,
MySQL数据库中自带Old_Password(str)和Password(str)函数,它们均可以在MySQL数据库里进行查询,前者是MySQL323加密,后者是MySQLSHA1方式加密。
(1)以MySQL323方式加密
select old_password('111111');
(2)以MySQLSHA1方式加密
select
password('111111');
MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了"*",在实际破解过程中去掉"*",也就是说MySQLSHA1加密的密码的实际位数是40位。
Ⅲ 如何利用MySQL数据库自带加密函数进行加密
保护些数据免受黑客或者窥探者获取令关注重要问题您既能让未经授权员使用或者破坏应用程序同要保证您竞争优势幸运MySQL带设计用提供种类型安全加密函数本文概述其些函数并说明何使用及能够提供同级别安全双向加密让我简单加密始:双向加密段数据通密钥加密能够由知道密钥解密mysql两函数支持种类型加密别叫做ENCODE()DECODE()面简单实例:mysql>
INSERT
INTO
users
(username,
password)
VALUES
('joe',
ENCODE('guessme',
'abracadabra'));
Query
OK,
1
row
affected
(0.14
sec)其Joe密码guessme通密钥abracadabra加密要注意加密完结二进制字符串所示:mysql>
SELECT
*
FROM
users
WHERE
username='joe';
+----------+----------+
|
username
|
password
|
+----------+----------+
|
joe
|
03?i?!?
|
+----------+----------+
1
row
in
set
(0.02
sec)abracadabra密钥于恢复原始字符串至关重要密钥必须传递给DECODE()函数获原始、未加密密码面使用:mysql>
SELECT
DECODE(password,
'abracadabra')
FROM
users
WHERE
username='joe';+---------------------------------+
|
DECODE(password,
'abracadabra')
|
+---------------------------------+
|
guessme
|
$query
=
"SELECT
COUNT(*)
FROM
users
WHERE
username='$inputUser'
AND
DECODE(password,
'abracadabra')
=
'$inputPass'";?>提示:虽ENCODE()DECODE()两函数能够满足数要求候您希望使用强度更高加密手段
Ⅳ mysql中建表怎么给密码加密,用MD5
CREATE
TABLE
`tablename`
(
`id`
int(4)
NOT
NULL
AUTO_INCREMENT,
`name`
varchar(30)
NOT
NULL
DEFAULT
'',
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
PRIMARY
KEY
(`id`)
)
ENGINE=MyISAM
DEFAULT
CHARSET=gb2312;
password
在输入后用PHP
MD5
()函数加密即可
Ⅳ mysql更改密码,密码怎么不是加密的
方法一:最简单的方法,也是安装完mysql后,系统提示的方法。使用mysqladmin来完成。shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"password后面的双引号不是必须的,不过如果密码包含空格或者一些特殊的符号,需要用引号。方法二:利用mysql里面的SET PASSWORD命令来完成,注意必须使用PASSWORD()函数来加密设置的这个newpwd,否则直接='newpwd'不会生效。不过如果使用方法一用mysqladmin password设置密码或者用GRANT来设置,就不用使用PASSWORD()函数,因为它们已经自动调用了该函数。shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
方法三:直接通过UPDATE user表来设置密码shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
如果忘记mysql的root密码可以采取下面的步骤重新设置
1。kill掉所有mysql的进程
2。使用--skip-grant-tables的参数启动mysql
shell> mysqld_safe --skip-grant-tables &
3。设置新的密码,同样两种方式可以选择
方法一
shell> mysqladmin -u root flush-privileges password "newpwd"
方法二
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
4。停止mysql server,用正常的模式启动
5。OK,可以使用新设置的密码了
Ⅵ 如何在mysql数据库中加入加密算法,使得数据库能够对数据库中的数据进行加密。
没有用过mysql加密,但一般都是用服务端语言把数据加密后存入数据库中,比如,在PHP里用md5函数把用户的密码加密之后存入数据中,一般都 是这么解决的。
Ⅶ mysql数据库里面的数据中的密码加密了,怎么解密
mysql -uroot -p 输入密码回车后,出现如下图错误。这时候需要我们破解密码。
service mysqld stop //先停止mysql服务。
然后打开mysql配置文件/etc/my.cnf.在【mysqld】下面添加一行代码:skip-grant-tables。这行代码意思就是跳过跳过授权表,即是可以跳过密码验证直接进入数据库。
service mysqld restart //重启mysql数据库。假如不重启的话,不会生效。
mysql -uroot -p //此时直接回车,既可以进入数据库。
出现mysql>就说明你已经进入到mysql数据库里了。
进数据库后,
use mysql //选择mysql这个库,因为mysql的root密码存放在这个数据库里。
show tables //查看下mysql库里有哪些表,我们需要操作的用户名密码都在user表里。
desc user //查看下user表有哪些字段
更改root密码。
update user set password=password('123456') where user="root"; //用户选root,可以随便更改成任意密码,我这里设置的123456,password()是mysql密码加密的一个函数。
flush privileges; //刷新下密码,使更改的生效。
exit //退出数据库。
退出数据库,重新登录
mysql -uroot -p //回车输入刚刚更改的密码,就能进去了。
然后再次进入配置文件vi /etc/my.cnf 把skip-grant-tables去掉。
Ⅷ 关于Mysql encode加密函数的问题
需要保存加密结果的字段为BLOB类型;
如下:
CREATE TABLE `tet` (
`title` blob,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
INSERT INTO tet(title) VALUES(ENCODE('数对密码字段进行','abc'));
SELECT * FROM tet;
SELECT DECODE(title,'abc') from tet;
本人在linux上运行结果正常。仅供参考
Ⅸ mysql decode 函数吗
在ORACLE数据库里decode函数实现的功能,于MySQL数据库里可以使用case when函数来替代;
MySQL数据库的decode函数是解密函数,它是加密函数encode的反函数,与ORACLE数据库里decode函数实现的功能完全不同。
ORACLE数据库里decode函数相当于MySQL数据库里的case when函数,只是前者看起来更加紧凑。
Ⅹ mysql数据库密码加密方式有几种
MySQL数据库的认证密码有两种方式,
MySQL 4.1版本之前是MySQL323加密,MySQL 4.1和之后的版本都是MySQLSHA1加密,
MySQL数据库中自带Old_Password(str)和Password(str)函数,它们均可以在MySQL数据库里进行查询,前者是MySQL323加密,后者是MySQLSHA1方式加密。
(1)以MySQL323方式加密
selectold_password('111111');
(2)以MySQLSHA1方式加密
select password('111111');
MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了"*",在实际破解过程中去掉"*",也就是说MySQLSHA1加密的密码的实际位数是40位。