mysql数据库里面的数据中的密码加密了,怎么解密

mysql数据库里面的数据中的密码加密了,怎么解密,第1张

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去掉。

MD5解密方法\x0d\x0a我在存储数据库的时候,通过md5加密方法将字段进行加密,当我在读取该字段时如何正确的读取原来的值啊\x0d\x0a------解决方案--------------------\x0d\x0a没办法,MD5是不可逆的。\x0d\x0a你需要使用可逆加密算法。\x0d\x0a------解决方案--------------------\x0d\x0a插入表中的时候md5加密\x0d\x0a比如:\x0d\x0a$sql= "insert into register(names,pswd,repswd) values( '$_POST[names] ',md5( '$_POST[pswd] '),md5( '$_POST[repswd] ')) "\x0d\x0a$qid=mysql_query($sql)\x0d\x0a读取的时候\x0d\x0a$pswd=empty($_POST[ 'pswd '])? ' ':md5($_POST[ 'pswd '])\x0d\x0a------解决方案--------------------\x0d\x0a如果业务要求可还原,那么不要采用MD5,请使用可逆加密算法,如DES加密。\x0d\x0aMD5为不可逆散列算法,可用于存储用户密码,存储后不需要永远不需要知道明文。密码比较时只需将用户输入的密码再次转成MD5码与存储的相比较即可得知用户输入密码是否正确。\x0d\x0alinux/unix *** 作系统一般采用MD5进行用户密码加密。\x0d\x0a------解决方案--------------------\x0d\x0aMD5目前所谓的破解只是采用碰撞法找到了对等因子。\x0d\x0a比如:string1的MD5码为MD1,而现在我们做到的只是又找到了一个string2,它的MD5码也是MD1。\x0d\x0a结果就是:用户登陆某采用MD5加密的系统时,本来密码是12345,现在可能用abcde也能登陆。\x0d\x0a想想可能还原吗?如果可以还原,那天大的信息也能用32位长的字符串表示了,这不成了超级压缩算法了吗,整个宇宙的信息都可以用32位长表示了。不可逆的!

作为参考,数据本身提供的字符串加密方法:

------------1.HASHbytes---------------

SELECT sys.fn_sqlvarbasetostr(HASHbytes('MD5','2324243')),sys.fn_VarBinToHexStr(HASHbytes('MD5','2324243'))

------------2. EncryptByPassPhrase 带公钥---------------

--公钥最好保存在其他地方

declare @pwd varbinary(max) ,@password nvarchar(1000) , @EncrptString nvarchar(max)

set @password ='1234567'

set @EncrptString= N'我是中国人'

--加密

SELECT @pwd = EncryptByPassPhrase( @password, @EncrptString)

select @pwd

--解密

SELECT @EncrptString =CAST( DecryptByPassPhrase(@password,@pwd) as nvarchar(max))

select @EncrptString


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6772442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存