① 鍦≒HP寮鍙戜腑鍏縐嶅姞瀵嗙殑鏂規硶錛屼綘鐢ㄧ殑鏄鍝縐嶏紵
鍦≒HP寮鍙戠殑涓栫晫閲岋紝鏁版嵁鐨勫畨鍏ㄦц嚦鍏抽噸瑕併傝╂垜浠娣卞叆鎺㈣ㄥ叚縐嶅父瑙佺殑鍔犲瘑鏂規硶錛岀湅鐪嬩綘鍦ㄥ疄闄呴」鐩涓鏄濡備綍榪愮敤鐨勩
棣栧厛錛屾垜浠浠嶱HP鍐呯疆鐨勫姞瀵嗗嚱鏁拌皥璧楓侾HP涓烘垜浠鎻愪緵浜嗕袱縐嶆埅鐒朵笉鍚岀殑鍔犲瘑鎵嬫碉細涓嶅彲閫嗙殑鍜屽彲閫嗙殑銆備笉鍙閫嗙殑濡md5()錛屽畠鐢熸垚鐨勫搱甯屽兼槸鍗曞悜鐨勶紝鐢ㄤ簬紜淇濇暟鎹鐨勫敮涓鎬э紝鑰crypt()鍒欐槸鍗曞悜DES鍔犲瘑錛岄傚悎浜庡瘑鐮佸瓨鍌ㄣ傜浉鍙嶏紝base64_encode()鍜urlencode()榪欑被鏂規硶錛屽傜綉緇滀紶杈撴椂甯哥敤錛岄氳繃MIME BASE64緙栫爜渚誇簬璺ㄥ鉤鍙頒紶杈擄紝浣嗗畠浠鏄鍙閫嗙殑錛屾湁瀵瑰簲鐨勮В瀵嗗嚱鏁板base64_decode()銆
鎺ョ潃錛屾垜浠鏉ョ湅涓や釜瀹為檯搴旂敤涓鐨勫姞瀵嗗嚱鏁扮ず渚嬨備竴鏄lock_url()錛屽畠宸у欏湴緇撳悎浜哢RL緙栫爜鍜岀壒孌婂瓧絎︾殑澶勭悊錛岄氳繃綆楁硶灝嗚緭鍏ョ殑瀛楃︿覆鍔犲瘑鍚庤繘琛屼紶杈撱傚彟涓涓鏄緇忚繃綺劇畝鐨勫姞瀵嗗嚱鏁幫紝濡passport_encrypt()錛屽悓鏍烽噰鐢ㄧ紪鐮佸拰瀵嗛掗鎿嶄綔錛岀『淇濇暟鎹鍦ㄤ紶杈撲腑鐨勫畨鍏ㄦс
鍦ㄩ」鐩涓錛屾洿涓哄嶆潅鐨勫姞瀵嗗勭悊鍙鑳芥秹鍙婁嬌鐢ㄥauthcode()榪欐牱鐨勮嚜瀹氫箟鍑芥暟銆傚畠鏍規嵁杈撳叆鐨勬槑鏂囥佹搷浣滅被鍨嬶紙鍔犲瘑鎴栬В瀵嗭級鍜屽瘑閽ワ紝鐢熸垚鍔ㄦ佸瘑閽ュ苟鎵ц屽姞瀵嗘牳蹇冪畻娉曘傝繖縐嶅姛鑳藉湪鐢ㄦ埛鐧誨綍楠岃瘉鍜孉PI鏁版嵁浜ゆ崲涓灝や負甯歌併
鏈鍚庯紝璁╂垜浠鎺㈢儲涓縐嶆洿涓虹伒媧葷殑鍔犲瘑瑙e瘑妯″紡銆傞氳繃瀹氫箟鍑芥暟濡encrypt()錛屾垜浠鍙浠ヤ嬌鐢∕D5浣滀負瀵嗛掗鐢熸垚鍣錛屽苟緇撳悎Base64緙栫爜錛屽疄鐜頒簡鍙屽悜鎿嶄綔銆傝繖涓渚嬪瓙灞曠ず浜嗗備綍瀵瑰瓧絎︿覆榪涜屽姞瀵嗗拰瑙e瘑錛屼互婊¤凍涓嶅悓鐨勫簲鐢ㄥ満鏅銆
鍦ㄤ綘鐨凱HP寮鍙戞棶紼嬩腑錛岄夋嫨鍝縐嶅姞瀵嗘柟娉曞彇鍐充簬鍏蜂綋闇奼傘備笉鍙閫嗙殑鍝堝笇鍑芥暟閫傜敤浜庨獙璇佹暟鎹瀹屾暣鎬э紝鑰屽彲閫嗙殑緙栫爜鏂規硶閫傜敤浜庢暟鎹浜ゆ崲銆傝頒綇錛屾瘡涓欏圭洰閮芥湁鍏剁壒瀹氱殑瀹夊叏瑕佹眰錛岄夋嫨閫傚悎鐨勫姞瀵嗙瓥鐣ヨ嚦鍏抽噸瑕併
鍦ㄨ拷奼傚畨鍏ㄧ殑鍚屾椂錛屼笉瑕佸繕璁板叧娉ㄦ垜浠鐨勫叕浼楀彿錛歅HP浠庡叆闂ㄥ埌綺鵑氾紝閭i噷鏈夋洿澶氳繘闃剁煡璇嗗拰瀹炵敤璧勬簮錛屽府鍔╀綘鎻愬崌鎶鑳斤紝瑙e喅榪涢樁闂棰樸傛棤璁轟綘鏄鏂版墜榪樻槸璧勬繁寮鍙戣咃紝榪欓噷閮芥湁閫傚悎浣犵殑鍐呭廣備竴璧鋒帰緔php鐨勬棤闄愬彲鑳斤紝鎻愬崌浣犵殑鎶鏈瀹炲姏銆
② PHP 如何隨機生成24位 MD5加密後的字元串
md5是32位的,所以你需要先生成md5,再進行字元串截取,截取24個長度就是24位了。
生成隨機的為了不重復,可以使用當前時間戳,在加上隨機數就行
$date_string = date('Y') . date('m') . date('d') . date('H') . date('i') . date('s') . mt_rand(100000, 999999);
$md5_string = md5($date_string);
$string = substr($md5_string, 0, 24);
echo $string;
③ php源碼怎麼加密
一、無需任何PHP擴展的加密
此類加密的代表有 威盾PHP加密專家、PHP在線加密平台、PHP神盾 等。
此類加密都是以eval函數為核心,輔以各式各樣的字元串混淆和各種小技巧,來達到加密目的(更准確的說,應該算是混淆)。下面以一個簡單的hello world為例來說明此類加密的大體過程。
<?php
echo "hello world";
首先 ,我們把這段代碼變為通過eval執行的
<?php
eval('echo "hello world";');
然後 ,我們再進行一些轉換,比如說base64編碼
<?php
eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));
就這樣子,我們的第一個加密過的php代碼新鮮出爐了。。。
上面這個例子非常非常簡單,基本上任何有一點php語言基礎甚至別的語言基礎的人都能輕松的看懂並解密。因此,我們需要一些方法讓這個加密至少看上去不是那麼簡單。
二、同時採用多種編碼函數
除了剛才提到的base64,php還有許多內置的編碼函數,例如urlencode、gzcompress等。把這些函數混合使用可以提高解密的復雜度(不是難度),此外還可以使用strtr來制定自己的編碼規則。 使用變數來代替函數名 使用特定字元來命名變數
這兒所說的特定字元是一些極其相似的字元,如I和1,0和O。試想一下滿屏都是O和0組成的變數,並且每一個的名字長度都在10個字元以上。。。 判斷文件自身是否被修改
這個功能看似容易,對文件做一下摘要再進行下對比即可知道是否被修改了,但是如何才能在文件內把摘要嵌入進去呢?我沒有找到完美的方案,但一個變通的方案還是很容易的。。。
<?php
$code = substr(file_get_contents(__FILE__), 0, -32);
$hash = substr(file_get_contents(__FILE__), -32);
if (md5($code) !== $hash) {
exit('file edited');
}
當然,你可以把這個校驗字元串放在別的位置來提高破解的難度。有了這個,別人想破解你的程序可就得多費一點功夫了。。。
既然知道了原理,那解密自然也就非常簡單了,總體來說就三步:
把eval替換為輸出,比如echo 根據編碼規則把字元串還原 如果文件未解密完全,從第一步開始繼續
當然,實際上的解密過程並沒有這么簡單,比如說如果加密的時候使用了gzcompress,那得到的數據將會包含一些二進制數據,而採用一般的文本編輯器打開時這些數據都會顯示為亂碼,並且在保存時丟失部分數據。解決方法很簡單也很麻煩,那就是使用二進制(16進制)方式打開、修改和保存。
④ 如何對PHP文件進行加密
Zend Guard是目前市面上最成熟的PHP源碼加密產品。
經過本人搜集資料,親身測試後,總結了如何利用Zend Guard對PHP文件進行加密,以及如何利用Zend Loader對加密後的PHP文件進行解密。
我使用的是Wampserver2.2,其中php的版本是5.3.10。(注意:這個裡面自帶的php版本屬於TS版本,即Thread safety線程安全)
Zend Guard的安裝及破解
點擊下載 Zend Guard5.5.0,下載完成後,請自行傻瓜式安裝。
破解需要注意以下幾點:
1、本KEY的有效時間為2010年7月10號,因此激活時,請將自己電腦的系統時間調整到這個時間之前,如:2009-01-01
2、本KEY激活的為試用版,加密過的文件只有14天有效時間,因此在加密文件時,請將自己電腦的系統時間向後調整幾年,如:2020-01-01
3、點擊下載授權文件 zend_guard授權文件.zip,解壓得到zend_guard.zl,即激活用的文件
4、打開Zend Guard 5.5.0,[Help] -> [Register] -> [Search for a license file on my disk],選擇zend_guard.zl授權文件激活即可
如何使用Zend Guard進行加密?
1、打開Zend Guard 5.5.0,[File]->[New]->[Zend Guard Project],新建項目。
彈出如下的對話框:
2、點擊 Next ,下一步。彈出如下對話框,選擇要進行加密的源文件或文件夾。
本步驟是選擇要加密的文件,可以是單個文件[Add File]或整個文件夾[Add Folder],然後[Next]。
(此處,我選擇的是對整個文件夾進行加密。即 D:\wamp\www\demo 里的所有文件進行加密。)
3、接下來是選擇PHP的版本[與你web伺服器上PHP的版本相對照],這里很重要,版本不對會出錯,[Finish]完成項目的創建。
注意: 對於Zend Guard 5.5.0這個版本的加密軟體,最高只可支持5.3版本的PHP。如果您的PHP版本較高,請到Zend Guard官網下載對應的高版本加密軟體。
(由於,我的PHP版本是PHP 5.3.10,故這里我選擇PHP 5.3,其他地方可以默認,直接點擊完成)
4、在Zend Guard左側的Guard Explorer中,可以看到你新建的項目了,滑鼠選中項目名稱後,右鍵單擊[Encode Project],完成。
如此,就實現了對PHP源碼的最簡單的加密。
我們可以在產品的輸出目錄(D:\proctDir)里,看到加密後的文件。
可以看出,產品輸出目錄里的PHP文件已被加密了。
這種最簡單的加密方式,我們並沒有設置加密的有效期,也沒有設置許可證支持(即解密時,是否需要許可證文件),默認是永不過期,不需要解密許可文件。
如果要設置解密時的許可證文件,可以點擊 項目名稱(project_test) ,再點擊 項目主窗口中的 Overview 旁邊的 Security 選項卡,就可以進行更加安全的加密設置了。 如下圖:
Zend Loader 解密
上面我們已經對PHP代碼進行了最簡單的加密(編碼),加密後生成的PHP源代碼,就不能再被web伺服器上的PHP模塊解析了。
當我們將加密後的php文件放到web伺服器上執行時,會顯示如下信息:
Zend Guard Run-time support missing!
One more more files on this web site were encoded by ZendGuard and the required run-time support is not installed orproperly configured.
......
原來,加密後的php代碼需要ZendGuardLoader模塊才能正常運行。
因為我的php版本是5.3.10的,所以我這里只提供了ZendGuardLoader-php-5.3-Windows,如果是其他版本的php,請自行網路。
點擊下載 ZendGuardLoader-php-5.3-Windows
下載後,解壓壓縮包,找到目錄里的 ZendLoader.dll 文件,將它復制到你的php目錄里的ext目錄(PHP的擴展庫目錄)下,再編輯PHP的配置文件php.ini,添加如下代碼:
[Zend.loader],
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="d:\wamp\bin\php\php5.3.10\ext\ZendLoader.dll"
註:
zend_loader.enable 表示是否啟用zend loader,1表示啟用,0表示禁用
zend_loader.disable_licensing 表示是否禁用許可證,1表示禁用,0表示不禁用 (由於上面我加密php文件的時候,沒有設置許可證支持,故解密時,禁用許可證)
zend_loader.obfuscation_level_support 表示代碼混淆級別
zend_loader.license_path 指定許可證文件的路徑
zend_extension 指定zend loader 擴展文件 的路徑
配置完成後,重啟wampserver,如果您的php的版本是NTS(非線程安全的話),就可以正常執行加密後的PHP文件了。
但是,多數情況下的php版本都是TS(線程安全)的,比如,我這個wampserver集成環境中的php是php-5.3.10-ts,它是沒有辦法支持Zend Guard Loader擴展文件的。故還會報出上面的錯誤提示信息。
因為,Zend Guard Loader 只能支持 NTS版本的php,終極解決辦法是下載安裝 NTS 版本的php。
為了實現PHP源文件的 Zend 解密測試,可以下載安裝 php-5.3.29-nts-Win32-VC9-x86,再來配置 Zend Loader 擴展支持。
如何查看安裝好的PHP的版本及PHP是否已經成功支持Zend Loader?
通過查看 phpinfo() 函數的輸出信息,利用 Ctrl + F 快速查找關鍵字Thread Safety 和 Zend Guard Loader。
如本人安裝好php-5.3.29-nts版本的php後,phpinfo()的輸出信息如下:
可以看到,Thread Safety 對應的值為disabled,就說明該php的版本是 NTS (非線程安全)的,否則就是TS版本的。
輸出信息中,還可以看到 Zend Guard Loader v3.3 字樣,說明 Zend Guard Loader 也安裝成功了。
再往下面看,還可以查看 Zend Guard Loader 的配置信息,如下:
到此,整個 Zend Guard 加密和 Zend Guard Loader 解密,就介紹完畢了。
溫馨提示: 為了順利實現PHP代碼的zend加密和解密,建議使用PHP官網上主流的PHP的NTS版和Zend官網上對應的Zend Guard加密軟體、 Zend Guard Loader解密插件。
相關附件:
Wampserver2.2
Zend
Guard5.5.0
php-5.3.29-nts-Win32-VC9-x86
mod_fcgid-2.3.6-win32-x86.zip
⑤ php 怎麼用zend加密
可以加密就可以解密。
解密ZEND加密後的PHP文件:
zend加密php文件解密工具Dezender可以做到。
1、下載Dezender.zip
2、解壓到盤裡面,最好不要有中文路徑,比如解壓到 I:Dezender 裡面,修改I:DezenderPHP5PHP5php.ini文件,修改裡面的文件路徑。
⑥ php 方法,將一個數字加密(或者叫轉換)為另一個數字(數字位數不變)
把數字每一位變成9減它的數
<?php
$a=1234567; //此處為待轉換的數
$b=$a."";
$a=str_split($a);
for($i=0;$i<strlen($b);$i++)
{
$a[$i]=9-$a[$i];
echo $a[$i];
}
?>
⑦ 各位用php將密碼存入資料庫,都用什麼方法進行加密的
php將密碼存入資料庫,可以分內常見的4種方式:
1、直接md5加密存到到資料庫
2、md5兩次存到資料庫
3、對需要加密的字元串和一個常量 進行混淆加密
4、生成一個隨機的變數存到資料庫中,然後對需要加密的字元串和這個隨機變數加密
<?php$str="admin"; //需要加密的字元串$str2="php"; //增加一個常量混淆 $pass1=md5($str);$pass2=md5(md5($str));$pass3=md5($str.$str2);echo $pass1."<br>".$pass2."<br>".$pass3;?>
輸出:
第四種
$str="admin"; //需要加密的字元串$encrypt=$row['encrypt']; // 生成的 隨機加密字元串 存到資料庫中$pass4=md5($str.$encrypt);//
⑧ PHP如何對用戶密碼進行加密
PHP如何對用戶密碼進行加密
第一種方法:可以使用如下方法對用戶密碼進行加密:MySql>SET user@”localhost” PASSWORD=PASSWORD(”Password”);
第二種方法:可以使用MYSQL的 PASSWORD函數進行用戶密碼的加密。例如:Insert into user(password, ……..) values (PASSWORD(”$password”,………));
可以在一個PHP文件裡面include另外一個PHP文件兩次嗎
是的,可以在一個PHP文件裡面include另外一個PHP文件兩次,被include的那個php文件也會執行兩次,所以如果在這個文件裡面定義的有一個class, 就會報出the class already defined的錯誤。
mysql的最長資料庫名,表名,欄位名可以是多長
資料庫名字最長為64
數據表名字最長為64
欄位名字最長為64
mysql_pconnect()和mysql_connect()有什麼區別
兩者的區別主要有兩個:
1. 在進行資料庫連接時,函數會先找同一個host, 用戶和密碼的persistent(持續的)的'鏈接,如果能找到,則使用這個鏈接而不返回一個新的鏈接。
2. mysql_pconnect()創建的資料庫連接在腳本執行完畢後仍然保留,可以被後來的代碼繼續使用,mysql_close()函數也不會關閉mysql_pconnect()創建的鏈接。
;