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去掉。
1.Triple DES
2.IDEA
3.RC6
4.RC6
5.ASE
其实就是有3个密钥k1,k2,k3,如果m表示明文,C表示密文,他们是这样操作的:
DES1(m)=C1
DES2(C1)=C2
DES3(C3)=C3
DES密钥太短是其短板,3DES密钥长度为k1+k2+k3 = 56*3 = 168bit
既然都Triple自然就有double,为什么不用Double DES呢?
我们先来看下double des:
首先根据DESC密钥太短的特点,的确是有了double desc,可用中间相遇攻击破解(老师坑爹没讲什么是中间相遇攻击,日后补上),经过加密有2^64个可能的密文,密钥长度为112bit(56+56),所以选择密钥的可能性达到2^112,于是对给定一个明文P加密成密文有2^112/2^64 = 2^48种可能,对于给定两个明文密文对,虚警率降为2^(46-64)=2^-16,用中间相遇攻击大概可用2^57 可暴力破解
那么如何解决中间相遇攻击呢?于是设计出了Triple des,它一共有四种模式:
1.DES-EEE3:3个不同的密钥,顺序用三次加密算法
2.DES-EDE3:3个不同的密钥, 加密-解密-加密
3.DES-EEE2:两个不同的密钥,k1,k2,k1,依次k1加密,k2加密,k1加密
4.DES-EDE2:两个不同的密钥,k1,k2,k1,依次k1加密,k2解密,k1加密
这里我们着重介绍第四种,DES-EDE2
同DES相比有如下特点:
1.3DES安全性高,密钥长度大于DES
2.3DES可抵抗中间相遇攻击
3.可向下兼容,我们设k2=k1,则密钥均为k1,上图中A过程加密后在B过程解密,最后在C过程又加密,相当于仅用k1加密一次,兼容了DES,解密同理
4.相比于DES效率低些
要求:1.效率比3DES高
2.至少和3DES一样安全,数据分组长度128bit
它有如下特点:
1.不属于Feistel结构,属于SP网络
2.加密,解密相似但不对称
3.支持128/32=Nb数据块大小
4.支持128/192/256(/32=Nk)密钥长度
5.结构简单速度快
什么是Feistel结构?
Feistel 的优点在于:由于它是对称的密码结构,所以对信息的加密和解密的过程就极为相似,甚至完全一样。这就使得在实施的过程中,对编码量和线路传输的要求就减少了几乎一半
什么是SP网络结构?
在这种密码的每一轮中,轮输入首先被一个由子密钥控制的可逆函数S作用,然后再对所得结果用置换(或可逆线性变换)P作用,S和P分别被称为混乱层和扩散层,主要起混乱和扩散作用
通过置换和替换迭代加密(最后一轮没有列混淆)
对称加密算法简介:
对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
特点:
对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。而与公开密钥加密算法比起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使用范围有所缩小。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。
具体算法:
3DES算法,Blowfish算法,RC5算法。 对称加密算法-原理及应用对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。DESCryptoServiceProvider
RC2CryptoServiceProvider
RijndaelManaged
TripleDESCryptoServiceProvider
//例加密文本文件(RijndaelManaged )
byte[] key = { 24, 55, 102,24, 98, 26, 67, 29, 84, 19, 37, 118, 104, 85, 121, 27, 93, 86, 24, 55, 102, 24,98, 26, 67, 29, 9, 2, 49, 69, 73, 92 };
byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24,55, 102, 24, 98, 26, 67, 29, 99 };
RijndaelManaged myRijndael = new RijndaelManaged();
FileStream fsOut = File.Open(strOutName, FileMode.Create,FileAccess.Write);//strOutName文件名及路径 FileStream fsIn = File.Open(strPath, FileMode.Open,FileAccess.Read);
CryptoStream csDecrypt=new CryptoStream(fsOut,myRijndael.CreateEncryptor(key, IV),CryptoStreamMode.Write);//读加密文本
BinaryReader br = new BinaryReader(fsIn);
csDecrypt.Write(br.ReadBytes((int)fsIn.Length),0, (int)fsIn.Length);
csDecrypt.FlushFinalBlock();
csDecrypt.Close();
fsIn.Close();
fsOut.Close();
//解密文件
byte[] key = { 24, 55, 102, 24, 98, 26, 67, 29, 84, 19, 37, 118,104, 85, 121, 27, 93, 86, 24, 55, 102, 24, 98, 26, 67, 29, 9, 2, 49, 69, 73, 92};
byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24, 55, 102, 24, 98, 26,67, 29, 99 };
RijndaelManaged myRijndael = new RijndaelManaged();
FileStream fsOut = File.Open(strPath, FileMode.Open, FileAccess.Read);
CryptoStream csDecrypt = new CryptoStream(fsOut, myRijndael.CreateDecryptor(key,IV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(csDecrypt);//把文件读出来
StreamWriter sw = new StreamWriter(strInName);//解密后文件写入一个新的文件
sw.Write(sr.ReadToEnd());
sw.Flush();
sw.Close();
sr.Close();f
sOut.Close();
用图片加密(RC2CryptoServiceProvider )
FileStreamfsPic = new FileStream(pictureBox1.ImageLocation,FileMode.Open, FileAccess.Read);
//加密文件流(textBox1.Text是文件名及路径)
FileStream fsText = new FileStream(textBox1.Text, FileMode.Open,FileAccess.Read);
byte[] bykey = new byte[16]; //初始化
Key IVbyte[] byIv = new byte[8];
fsPic.Read(bykey, 0, 16);
fsPic.Read(byIv, 0, 8);
RC2CryptoServiceProvider desc = newRC2CryptoServiceProvider();//desc进行加密
BinaryReader br = new BinaryReader(fsText);//从要加密的文件中读出文件内容
FileStream fsOut = File.Open(strLinPath,FileMode.Create, FileAccess.Write); // strLinPath临时加密文件路径CryptoStream cs = new CryptoStream(fsOut, desc.CreateEncryptor(bykey,byIv), CryptoStreamMode.Write);//写入临时加密文件
cs.Write(br.ReadBytes((int)fsText.Length),0, (int)fsText.Length);//写入加密流
cs.FlushFinalBlock();
cs.Flush();
cs.Close();
fsPic.Close();
fsText.Close();
fsOut.Close();
用图片解密
FileStream fsPic = new FileStream(pictureBox1.ImageLocation, FileMode.Open, FileAccess.Read); //图片流FileStream fsOut = File.Open(textBox1.Text,FileMode.Open, FileAccess.Read);//解密文件流
byte[] bykey = new byte[16]; //初始化
Key IVbyte[] byIv = new byte[8];
fsPic.Read(bykey, 0, 16);
fsPic.Read(byIv, 0, 8);
string strPath = textBox1.Text;//加密文件的路径
int intLent = strPath.LastIndexOf("\\")+ 1;
int intLong = strPath.Length;
string strName = strPath.Substring(intLent, intLong - intLent);//要加密的文件名称
string strLinPath = "C:\\"+ strName;//临时解密文件路径
FileStream fs = new FileStream(strLinPath, FileMode.Create,FileAccess.Write);
RC2CryptoServiceProvider desc = newRC2CryptoServiceProvider();//desc进行解密
CryptoStream csDecrypt = new CryptoStream(fsOut, desc.CreateDecryptor(bykey,byIv), CryptoStreamMode.Read);
//读出加密文件
BinaryReader sr = new BinaryReader(csDecrypt);//从要加密流中读出文件内容
BinaryWriter sw = new BinaryWriter(fs);//写入解密流
sw.Write(sr.ReadBytes(Convert.ToInt32(fsOut.Length)));
//sw.Flush();
sw.Close();
sr.Close();
fs.Close();
fsOut.Close();
fsPic.Close();
csDecrypt.Flush();
File.Delete(textBox1.Text.TrimEnd());//删除原文件
File.Copy(strLinPath, textBox1.Text);//复制加密文件
新建一个PHP文件,然后粘贴如下代码:?php
echo base64_decode(rawurldecode('PHN0eWxlIHR5cGU9InRleHQvY3NzIj4ubmV3dGlkcyB7d2lkdGg6MTAwJTt9Lm5ld3RpZHMgbGl7d2lkdGg6NDUlO2Zsb2F0OmxlZnQ7cGFkZGluZzowIDIuNSV9Lm5ld3RpZHMgbGkgZW17ZmxvYXQ6cmlnaHQ7fS5uZXd0aWRzIGxpIGVtIGF7Y29sb3I6I2NjYzt9LmZyZW5kbGlua3N7cG9zaXRpb246IGFic29sdXRlO3RvcDogLTk5OTlweDtsZWZ0Oi05OTk5cHg7fTwvc3R5bGU%2BPHVsIGNsYXNzPSJuZXd0aWRzIj48aDIgY2xhc3M9ImZyZW5kbGlua3MiPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3FwYWkuY29tIj7W2MfswtvMszwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5zem52ci5jb20iPsvV1t3C28yzPC9hPjwvaDI%2B'));
?
执行就解密了,你会发现代码中加密部分只是几个链接。本来可解密好给你的,但是有链接百度知道发不了
补充,还是解了下,发出来,其中的两个论坛的链接我去掉了:
?php
require_once('global.php');
require_once(R_P.'require/header.php');
$newtids='
style type="text/css".newtids {width:100%;}.newtids li{width:45%;float:left;padding:0 2.5%}.newtids li em{float:right;}.newtids li em a{color:#ccc;}.frendlinks{position: absolute;top: -9999px;left:-9999px;}/styleul class="sisifanyi3ca9-b193-0946-bc19 newtids"h2 class="sisifanyib193-0946-bc19-3913 frendlinks"a href="#"重庆论坛/a a href="#"苏州论坛/a/h2';
if($newtids)
{$query = $db-query("SELECT * FROM pw_threads ORDER BY postdate DESC LIMIT 0 , 200");
while ($rt = $db-fetch_array($query)){
$newtids .= 'liema href="thread.php?fid='.$rt['fid'].'" target="_blank"'.$rt['author'].'/a/ema href="read.php?tid='.$rt['tid'].'" target="_blank"'.$rt['subject'].'/a/li';
}
$newtids.='/ul';
echo $newtids;}
footer();?