加密.docx
《加密.docx》由会员分享,可在线阅读,更多相关《加密.docx(36页珍藏版)》请在冰点文库上搜索。
![加密.docx](https://file1.bingdoc.com/fileroot1/2023-7/3/31ec8c3e-2d66-4631-8eb5-071fd58485c5/31ec8c3e-2d66-4631-8eb5-071fd58485c51.gif)
加密
金典网络技术开发有限公司
PHP简单应用
mySql安全应用
罗旭东
2012/12/27
学习在生活中进行,生活在工作里体味,知识存在于脑中,思想……
加密:
functionmyencode($mystr)
{
$mystr=base64_encode($mystr);
for($i=1;$i<=strlen($mystr);$i++)
{
$tmpstr.=chr(ord(substr($mystr,$i-1,1))-$tmpi+17);
}
returnurlencode(base64_encode($tmpstr));
}
解密:
functionmydecode($mystr)
{
$mystr=urldecode($mystr);
$mystr=base64_decode($mystr);
for($i=1;$i<=strlen($mystr);$i++)
{
$tmpstr.=chr(ord(substr($mystr,$i-1,1))+$tmpi-17);
}
returnbase64_decode($tmpstr);
}
//其中"17"这个数字可以改,要改两个函数都要改的:
)
//垃圾程序,高手见笑了.望不吝赐教.
MySQL数据库加密与解密
作者:
CIO时代网出处:
IT专家网2012-03-0709:
56
数据加密、解密在安全领域非常重要。
对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大。
有多种前端加密算法可用于数据加密、解密,下面我向您推荐一种简单的数据库级别的数据加密、解密解决方案。
以MYSQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT())和解密函数(AES_DECRYPT())。
在表中插入加密数据
INSERTINTOuserdata(username,pasword,encryptedpassword)VALUES('smith','htims',AES_ENCRYPT('htims','key'))
上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。
AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它(请牢记!
)。
下面是表中的数据截图:
从表中查询加密数据
SELECTusername,pasword,AES_DECRYPT(encryptedpassword,'key')FROMuserdata
上面的查询语句使用了AES_DECRYPT()函数。
下面是运行结果:
在上面的截图中,我们可以看到“pasword”和“decryptedpassword”字段的值是相同的,也就是说,你解密了用户密码。
mysql数据加密aes_encrypt()和aes_decrypt()
2009-07-2615:
51
数据库安全性.首先创建一个用户表users包含id,user_name两列
然后创建一个aes_salt表,里面的只有一列
aes_salt表的作用是存放加密参数.也可以把加密参数存放在php常量里面.然后给aes_salt表里面添加一个数据.
这里我添加了一个数据是'names',可以随意添加.这里的names相当一个钥匙,如果忘记钥匙的名字,那么就无法解开加密的数据.
下面用了一个mysql函数,aes_encrypt('a','b')a的位置是要加密的数字或字符串的位置,b的位置是钥匙的位置
aes_decrypt('a','b')是解密函数,用法和加密函数一样
由于密钥来自于数据库,所以给mysql声明一个变量,并把aes_salt里面的值赋给变量
赋值方法是@salt:
=saltfromaes_salt;
然后再users表中插入数据,并用aes_encrypt函数加密.user_name的值是'JAY'.
当查找users表中的值的时候可以用解密函数来取得,如果密钥的值不对则不能查看加密的值.
加密函数可以直接写成aes_encrypt('JAY','XXXX');但是密钥放在数据库里面更加安全.
如果mysql版本低于4.0.2,可以用encode()和decode()函数代替,语法是完全一样的
php
$con=mysql_connect("localhost","peter","abc123");
if(!
$con)
{
die('Couldnotconnect:
'.mysql_error());
}
//Createdatabase
if(mysql_query("CREATEDATABASEmy_db",$con))
{
echo"Databasecreated";
}
else
{
echo"Errorcreatingdatabase:
".mysql_error();
}
//Createtableinmy_dbdatabase
mysql_select_db("my_db",$con);
$sql="CREATETABLEPersons
(
FirstNamevarchar(15),
LastNamevarchar(15),
Ageint
)";
mysql_query($sql,$con);
mysql_close($con);
?
>
$sql="CREATETABLEPersons
(
personIDintNOTNULLAUTO_INCREMENT,
PRIMARYKEY(personID),
FirstNamevarchar(15),
LastNamevarchar(15),
Ageint
)";
mysql_query($sql,$con);
php
$con=mysql_connect("localhost","peter","abc123");
if(!
$con)
{
die('Couldnotconnect:
'.mysql_error());
}
mysql_select_db("my_db",$con);
mysql_query("INSERTINTOPersons(FirstName,LastName,Age)
VALUES('Peter','Griffin','35')");
mysql_query("INSERTINTOPersons(FirstName,LastName,Age)
VALUES('Glenn','Quagmire','33')");
mysql_close($con);
?
>
把来自表单的数据插入数据库
Firstname:
Lastname:
Age:
下面是"insert.php"页面的代码:
php
$con=mysql_connect("localhost","peter","abc123");
if(!
$con)
{
die('Couldnotconnect:
'.mysql_error());
}
mysql_select_db("my_db",$con);
$sql="INSERTINTOPersons(FirstName,LastName,Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if(!
mysql_query($sql,$con))
{
die('Error:
'.mysql_error());
}
echo"1recordadded";
mysql_close($con)
?
>
从数据库表中选取数据
php
$con=mysql_connect("localhost","peter","abc123");
if(!
$con)
{
die('Couldnotconnect:
'.mysql_error());
}
mysql_select_db("my_db",$con);
$result=mysql_query("SELECT*FROMPersons");
while($row=mysql_fetch_array($result))
{
echo$row['FirstName']."".$row['LastName'];
echo"
";
}
mysql_close($con);
?
>
在HTML表格中显示结果
php
$con=mysql_connect("localhost","peter","abc123");
if(!
$con)
{
die('Couldnotconnect:
'.mysql_error());
}
mysql_select_db("my_db",$con);
$result=mysql_query("SELECT*FROMPersons");
echo"
Firstname | Lastname |
---|
";
while($row=mysql_fetch_array($result))
{
echo"
";echo"
".$row['FirstName']." | ";echo"
".$row['LastName']." | ";echo"
";
}
echo"";
mysql_close($con);
?
>
更新数据库中的数据
php
$con=mysql_connect("localhost","peter","abc123");
if(!
$con)
{
die('Couldnotconnect:
'.mysql_error());
}
mysql_select_db("my_db",$con);
mysql_query("UPDATEPersonsSETAge='36'
WHEREFirstName='Peter'ANDLastName='Griffin'");
mysql_close($con);
?
>
删除数据库中的数据
php
$con=mysql_connect("localhost","peter","abc123");
if(!
$con)
{
die('Couldnotconnect:
'.mysql_error());
}
mysql_select_db("my_db",$con);
mysql_query("DELETEFROMPersonsWHERELastName='Griffin'");
mysql_close($con);
?
>
创建ODBC连接
$conn=odbc_connect('northwind','','');
$sql="SELECT*FROMcustomers";
$rs=odbc_exec($conn,$sql);
ODBC实例
php
$conn=odbc_connect('northwind','','');
if(!
$conn)
{exit("ConnectionFailed:
".$conn);}
$sql="SELECT*FROMcustomers";
$rs=odbc_exec($conn,$sql);
if(!
$rs)
{exit("ErrorinSQL");}
echo"
";echo"
Companyname | ";echo"
Contactname |
";while(odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"CompanyName");
$conname=odbc_result($rs,"ContactName");
echo"
$compname | ";echo"
$conname |
";}
odbc_close($conn);
echo"
";
?
>
初始化XML解析器
php
//InitializetheXMLparser
$parser=xml_parser_create();
//Functiontouseatthestartofanelement
functionstart($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case"NOTE":
echo"--Note--
";
break;
case"TO":
echo"To:
";
break;
case"FROM":
echo"From:
";
break;
case"HEADING":
echo"Heading:
";
break;
case"BODY":
echo"Message:
";
}
}
//Functiontouseattheendofanelement
functionstop($parser,$element_name)
{
echo"
";
}
//Functiontousewhenfindingcharacterdata
functionchar($parser,$data)
{
echo$data;
}
//Specifyelementhandler
xml_set_element_handler($parser,"start","stop");
//Specifydatahandler
xml_set_character_data_handler($parser,"char");
//OpenXMLfile
$fp=fopen("test.xml","r");
//Readdata
while($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp))or
die(sprintf("XMLError:
%satline%d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
//FreetheXMLparser
xml_parser_free($parser);
?
>
加载和输出XML
note.xml
xmlversion="1.0"encoding="ISO-8859-1"?
>
George
John
Reminder
Don'tforgetthemeeting!
php文件
php
$xmlDoc=newDOMDocument();
$xmlDoc->load("note.xml");
print$xmlDoc->saveXML();
?
>
/*------以下是PHP函数部分-----------*/
PHPDate()函数
php
echodate("Y/m/d");
echo"
";
echodate("Y.m.d");
echo"
";
echodate("Y-m-d");
?
>
获得某天时间戳:
php
$tomorrow=mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo"明天是".date("Y/m/d",$tomorrow);
?
>
fopen()函数
php
$file=fopen("welcome.txt","r");
?
>
模式
描述
r
只读。
在文件的开头开始。
r+
读/写。
在文件的开头开始。
w
只写。
打开并清空文件的内容;如果文件不存在,则创建新文件。
w+
读/写。
打开并清空文件的内容;如果文件不存在,则创建新文件。
a
追加。
打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
a+
读/追加。
通过向文件末端写内容,来保持文件内容。
x
只写。
创建新文件。
如果文件已存在,则返回FALSE。
x+
读/写。
创建新文件。
如果文件已存在,则返回FALSE和一个错误。
注释:
如果fopen()无法打开指定文件,则返回0(false)。
fclose()
php
$file=fopen("test.txt","r");
//somecodetobeexecuted
fclose($file);
?
>
feof()函数检测是否已达到文件的末端(EOF)
if(feof($file))echo"Endoffile";
fgets()函数用于从文件中逐行读取文件
php
$file=fopen("welcome.txt","r")orexit("Unabletoopenfile!
");
//Outputalineofthefileuntiltheendisreached
while(!
feof($file))
{
echofgets($file)."
";
}
fclose($file);
?
>
fgetc()函数用于从文件逐字符地读取文件
php
$file=fopen("welcome.txt","r")orexit("Unabletoopenfile!
");
while(!
feof($file))
{
echofgetc($file);
}
fclose($file);
?
>
创建一个文件上传表单
enctype="multipart/form-data">
Filename:
upload_file.php
php
if($_FILES["file"]["error"]>0)
{
echo"Error:
".$_FILES["file"]["error"]."
";
}
else
{
echo"Upload:
".$_FILES["file"]["name"]."
";
echo"Type:
".$_FILES["file"]["type"]."
";
echo"Size:
".($_FILES["file"]["size"]/1024)."Kb
";
echo"Storedin:
".$_FILES["file"]["tmp_name"];
}
?
>
通过使用PHP的全局数组$_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的inputname,第二个下标可以是"name","type","size","tmp_name"或"error"。
就像这样:
$_FILES["file"]["name"]-被上传文件的名称
$_FILES["file"]["type"]-被上传文件的类型
$_FILES["file"]["size"]-被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"]-存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"]-由文件上传导致的错误代码
这是一种非常简单文件上传方式。
基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。
上传限制
php
if((($_FILES["file"]["type"]=="image/gif")
||($_FILES["file"]["type"]=="image/jpeg")
||($_FILES["file"]["type"]=="image/pjpeg"))
&&($_FILES["file"]["size"]<20000))
{
if($_FILES["file"]["error"]>0)
{
echo"Error:
".$_FILES["file"]["error"]."
";
}
else
{
echo"Upload:
".$_FILES["file"]["name"]."
";
echo"Type:
".$_FILES["file"]["type"]."
";
echo"Size:
".($_FILES["file"]["size"]/1024)."Kb
";
echo"Storedin:
".$_FILES["file"]["tmp_name"];
}
}
else
{
echo"Invalidfile";
}
?
>
保存被上传的文件
php