php密碼加密
你可以加一個表單或者在url網址上面加參數例如我用get參數的方式
訪問地址:http://www.sunnyos.com
正常訪問的時候不讓訪問數據錯誤的一句話
<?php
if(!isset($_GET['name'])||!$_GET['name']=='sunny'){
exit('非法訪問');
}
上面代碼加上之後直接訪問http://www.sunnyos.com/index.php就會失敗
而稍微修改一下http://www.sunnyos.com/index.php?name=sunny 這樣就會成功了,因為我從url網址上面獲取了name這個參數來進行對比
還有就是通過表單的方式,html代碼
<formmethod="post">
<inputtype="text"name="name"/>
<inputtype="submit"value="進入"/>
</form>
php代碼:
<?php
if(!isset($_POST['name'])||!$_POST['name']=='sunny'){
exit('非法訪問');
}
㈡ 如何對PHP文件進行加密
給文件加密,我使用的是超級加密3000軟體。超級加密3000軟體有文件加密、文件夾加密、數據粉碎、文件夾保護、磁碟保護等功能。
下載安裝超級加密3000軟體。
在要加密的文件上單擊滑鼠右鍵,然後在彈出菜單中選擇超級加密選項。
在彈出的文件加密窗口中輸入文件加密密碼,選擇文件的加密類型,點擊確定按鈕就可以實現文件的加密了。
用超級加密3000軟體給文件加密非常的簡單,您可以下載這款軟體給您的文件加密試試。
㈢ PHP密碼為什麼要用md5加密
使用md5加密
一個方面是在資料庫中存儲的不是明文
因此即使查看資料庫也不知道原密碼是多少
而如果通過暴力破解的話
一般軟體系統是會使用次數限制的
另外有採取安全措施的軟體系統
不會讓客戶使用123這樣的3位數字做密碼的
當密碼的位數長了
暴力破解也就比較麻煩了
10位以上的密碼
普通PC機的暴力破解能力不夠用的
㈣ php中如何使用MD5加密
1.
MD5加密
string
md5
(
string
$str
[,
bool
$raw_output
=
false
]
)
參數
str
--
原始字元串。
raw_output
--
如果可選的
raw_output
被設置為
TRUE,那麼
MD5
報文摘要
將以16位元組長度的原始二進制格式返回。
這是一種不可逆加密,執行如下的代碼
$password
=
'123456';
echo
md5($password);
得到結果是
㈤ php md5一般用來加密什麼東西
一般用來加密密碼,因為md5屬於不可逆的加密方式,所以認為它的安全性比較高,不過現在網上有一些網站專門提供md5解密,他們這種解密都是用的列舉法,基本上12位以下的數字組合都是能夠解密的,所以密碼一定要用數字和字母的組合。
㈥ PHP使用MD5加密用戶的密碼信息安全嗎
md5的話,一些簡單的密碼是可以破解的,所以建議用sha1來加密
樓主可以搜md5破解,像123,admin這類簡單密碼是可以破解的
㈦ 怎麼處理php加密的數據
php將密碼存入資料庫,可以分內常見的4種方式:
1、直接md5加密存到到資料庫
2、md5兩次存到資料庫
3、對需要加密的字元串和一個常量 進行混淆加密
4、生成一個隨機的變數存到資料庫中,然後對需要加密的字元串和這個隨機變數加密
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$str="admin"; //需要加密的字元串
$str2="php"; //增加一個常量混淆
$pass1=md5($str);
$pass2=md5(md5($str));
$pass3=md5($str.$str2);
echo $pass1."".$pass2."".$pass3;
?>
輸出:
第四種
1
2
3
4
$str="admin"; //需要加密的字元串
$encrypt=$row['encrypt']; // 生成的 隨機加密字元串 存到資料庫中
$pass4=md5($str.$encrypt);
//
㈧ 對php文件加密,有哪些免費軟體,怎麼加密
php 源文件加密工具PHP Screw .
目前最新版本是1.3
網址
http://sourceforge.net/projects/php-screw/
我的安裝環境
系統:Slackware 10
軟體:Apache 1.3.31
PHP 4.3.7
以上環境全部是slackware 10默認安裝後自帶的。具體的Apache+php+mysql安裝方法參照如下
支持php的Apache環境安裝
獲得軟體
下載php_screw-1.3 (http://prdownloads.sourceforge.net/php-screw/php_screw-1.3.tgz?download)
安裝
1.將獲得的php_screw-1.3.tgz文件放到/usr/local目錄下,然後用tar解壓縮
tar zxvf php_screw-1.3.tgz
2.進入/usr/local/php_screw-1.3目錄開始安裝
cd /usr/local/php_screw-1.3
phpize
./confiugre
3.設置自己用來加密的密碼
vi my_screw.h
-- Please change the encryption SEED key (pm9screw_mycryptkey) into the
values according to what you like.
The encryption will be harder to break, if you add more values to the
encryption SEED array. However, the size of the SEED is unrelated to
the time of the decrypt processing.
* If you can read and understand the source code, to modify an original
encryption logic will be possible. But in general, this should not
be necessary.
OPTIONAL: Encrypted scripts get a stamp added to the beginning of the
file. If you like, you may change this stamp defined by
PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must
be less than or equal to the size of PM9SCREW.
4.編譯
make
5.拷貝moles目錄下的php_screw.so文件到/usr/lib/php/extension目錄下
cp moles/php_screw.so /usr/lib/php/extension/
6.編輯php.ini文件
在php.ini文件里,加入如下語句
extension=php_screw.so
7.重新啟動Apache
/etc/rc.d/rc.httpd restart
8.編譯加密工具
cd tools
make
9.將tools目錄下加密用的工具screw拷貝到適當目錄
cp screw /usr/bin/
經過以上的10步,就已經把php_screw-1.3全部安裝完成了。並且現在的php也已經支持解釋加密過的php文件了
使用
1.現寫一個要加密的php文件。
我寫了如下的一個用來測試php速度的compute.php文件
<?
$a=0;
$t=time();
for($i=0;$i<5000000;$i++)
{$a=$a*$i;}
$t1=time();
echo "<p>";
echo "It used:";
echo $t1-$t;
echo "seconds";
?>
將上面的compute.php文件放到/var/www/htdocs目錄下。通過瀏覽器訪問,將顯示出php在大量計算時的速度(只能粗略估計一下)
2.將我們寫的php文件加密
cd /var/www/htdocs/
screw compute.php
我們加密後,現在目錄下的compute.php文件就是我們已經加密的了。而源文件被改名為compute.php.screw存放了。
我們現在再測試一下compute.php,看看能否正常使用?速度如何?
我比較了一下,加密前後的速度大概一樣,基本沒有太多的損失。
㈨ php代碼怎麼加密最好,不能破解的那種
在使用PHP開發Web應用的中,很多的應用都會要求用戶注冊,而注冊的時候就需要我們對用戶的信息進行處理了,最常見的莫過於就是郵箱和密碼了,本文意在討論對密碼的處理:也就是對密碼的加密處理。
MD5
相信很多PHP開發者在最先接觸PHP的時候,處理密碼的首選加密函數可能就是MD5了,我當時就是這樣的:
$password = md5($_POST["password"]);
上面這段代碼是不是很熟悉?然而MD5的加密方式目前在PHP的江湖中貌似不太受歡迎了,因為它的加密演算法實在是顯得有點簡單了,而且很多破解密碼的站點都存放了很多經過MD5加密的密碼字元串,所以這里我是非常不提倡還在單單使用MD5來加密用戶的密碼的。
SHA256 和 SHA512
其實跟前面的MD5同期的還有一個SHA1加密方式的,不過也是演算法比較簡單,所以這里就一筆帶過吧。而這里即將要說到的SHA256 和 SHA512都是來自於SHA2家族的加密函數,看名字可能你就猜的出來了,這兩個加密方式分別生成256和512比特長度的hash字串。
他們的使用方法如下:
<?php
$password = hash("sha256", $password);
PHP內置了hash()函數,你只需要將加密方式傳給hash()函數就好了。你可以直接指明sha256, sha512, md5, sha1等加密方式。
鹽值
在加密的過程,我們還有一個非常常見的小夥伴:鹽值。對,我們在加密的時候其實會給加密的字元串添加一個額外的字元串,以達到提高一定安全的目的:
<?php
function generateHashWithSalt($password) {$intermediateSalt = md5(uniqid(rand(), true));$salt = substr($intermediateSalt, 0, 6);
return hash("sha256", $password . $salt);}
Bcrypt
如果讓我來建議一種加密方式的話,Bcrypt可能是我給你推薦的最低要求了,因為我會強烈推薦你後面會說到的Hashing API,不過Bcrypt也不失為一種比較不錯的加密方式了。
<?php
function generateHash($password) {
if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {$salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22);return crypt($password, $salt);
}
}
Bcrypt 其實就是Blowfish和crypt()函數的結合,我們這里通過CRYPT_BLOWFISH判斷Blowfish是否可用,然後像上面一樣生成一個鹽值,不過這里需要注意的是,crypt()的鹽值必須以$2a$或者$2y$開頭,詳細資料可以參考下面的鏈接:
http://www.php.net/security/crypt_blowfish.php更多資料可以看這里:
http://php.net/manual/en/function.crypt.phpPassword Hashing API
這里才是我們的重頭戲,Password Hashing API是PHP 5.5之後才有的新特性,它主要是提供下面幾個函數供我們使用:
password_hash() – 對密碼加密.
password_verify() – 驗證已經加密的密碼,檢驗其hash字串是否一致.
password_needs_rehash() – 給密碼重新加密.
password_get_info() – 返回加密演算法的名稱和一些相關信息.
雖然說crypt()函數在使用上已足夠,但是password_hash()不僅可以使我們的代碼更加簡短,而且還在安全方面給了我們更好的保障,所以,現在PHP的官方都是推薦這種方式來加密用戶的密碼,很多流行的框架比如Laravel就是用的這種加密方式。
<?php
$hash = password_hash($passwod, PASSWORD_DEFAULT);對,就是這么簡單,一行代碼,All done。
PASSWORD_DEFAULT目前使用的就是Bcrypt,所以在上面我會說推薦這個,不過因為Password Hashing API做得更好了,我必須鄭重地想你推薦Password Hashing API。這里需要注意的是,如果你代碼使用的都是PASSWORD_DEFAULT加密方式,那麼在資料庫的表中,password欄位就得設置超過60個字元長度,你也可以使用PASSWORD_BCRYPT,這個時候,加密後字串總是60個字元長度。
這里使用password_hash()你完全可以不提供鹽值(salt)和 消耗值 (cost),你可以將後者理解為一種性能的消耗值,cost越大,加密演算法越復雜,消耗的內存也就越大。當然,如果你需要指定對應的鹽值和消耗值,你可以這樣寫:
<?php
$options = [
'salt' => custom_function_for_salt(), //write your own code to generate a suitable salt'cost' => 12 // the default cost is 10
];
$hash = password_hash($password, PASSWORD_DEFAULT, $options);密碼加密過後,我們需要對密碼進行驗證,以此來判斷用戶輸入的密碼是否正確:
<?php
if (password_verify($password, $hash)) {
// Pass
}
else {
// Invalid
}
很簡單的吧,直接使用password_verify就可以對我們之前加密過的字元串(存在資料庫中)進行驗證了。
然而,如果有時候我們需要更改我們的加密方式,如某一天我們突然想更換一下鹽值或者提高一下消耗值,我們這時候就要使用到password_needs_rehash()函數了:
<?php
if (password_needs_rehash($hash, PASSWORD_DEFAULT, ['cost' => 12])) {// cost change to 12
$hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]);// don't forget to store the new hash!
}
只有這樣,PHP的Password Hashing API才會知道我們重現更換了加密方式,這樣的主要目的就是為了後面的密碼驗證。
簡單地說一下password_get_info(),這個函數一般可以看到下面三個信息:
algo – 演算法實例
algoName – 演算法名字
options – 加密時候的可選參數
所以,現在就開始用PHP 5.5吧,別再糾結低版本了。
Happy Hacking
㈩ PHPadmin創建資料庫如何密碼sha1加密
可以查看資料庫用戶加密後的密碼
1.打開phpmyadmin
2. 左側主菜單選擇mysql庫,然後選擇user表
在user表裡可以看到所用用戶加密後的密碼,見附圖