導航:首頁 > 文檔加密 > php加密系統開源

php加密系統開源

發布時間:2022-10-04 02:06:37

『壹』 php excel加密的實現方法有什麼

PHP中的加密方式有如下幾種
1. MD5加密

string md5 ( string $str [, bool $raw_output = false ] )
參數
str -- 原始字元串。
raw_output -- 如果可選的 raw_output 被設置為 TRUE,那麼 MD5 報文摘要將以16位元組長度的原始二進制格式返回。
這是一種不可逆加密,執行如下的代碼
$password = 『123456『;
echo md5($password);
得到結果是
2. Crype加密
string crypt ( string $str [, string $salt ] )
crypt() 返回一個基於標准 UNIX DES 演算法或系統上其他可用的替代演算法的散列字元串。
參數
str -- 待散列的字元串。
salt -- 可選的鹽值字元串。如果沒有提供,演算法行為將由不同的演算法實現決定,並可能導致不可預料的結束。
這是也一種不可逆加密,執行如下的代碼
代碼如下:
$password = 『123456『;
$salt = "test";// 只取前兩個
echo crypt($password, $salt);
得到的結果是teMGKvBPcptKo
使用自動鹽值的例子如下:
代碼如下:
$password = crypt(『mypassword『); // 自動生成鹽值
/* 你應當使用 crypt() 得到的完整結果作為鹽值進行密碼校驗,以此來避免使用不同散列演算法導致的問題。(如上所述,基於標准 DES 演算法的密碼散列使用 2 字元鹽值,但是基於 MD5 演算法的散列使用 12 個字元鹽值。)*/
if (crypt(『mypassword『, $password) == $password) {
echo "Password verified!";
}
執行結果是輸出 Password verified!
以不同散列類型使用 crypt()的例子如下:
代碼如下:
if (CRYPT_STD_DES == 1) {
echo 『Standard DES: 『 . crypt(『rasmuslerdorf『, 『rl『) . "\n";
}
if (CRYPT_EXT_DES == 1) {
echo 『Extended DES: 『 . crypt(『rasmuslerdorf『, 『_J9..rasm『) . "\n";
}
if (CRYPT_MD5 == 1) {
echo 『MD5: 『 . crypt(『rasmuslerdorf『, 『$1$rasmusle$『) . "\n";
}
if (CRYPT_BLOWFISH == 1) {
echo 『Blowfish: 『 . crypt(『rasmuslerdorf『, 『$2a$07$usesomesillystringforsalt$『) . "\n";
}
if (CRYPT_SHA256 == 1) {
echo 『SHA-256: 『 . crypt(『rasmuslerdorf『, 『$5$rounds=5000$usesomesillystringforsalt$『) . "\n";
}
if (CRYPT_SHA512 == 1) {
echo 『SHA-512: 『 . crypt(『rasmuslerdorf『, 『$6$rounds=5000$usesomesillystringforsalt$『) . "\n";
}
其結果如下
Standard DES: rl.3StKT.4T8M
Extended DES: _J9..rasmBYk8r9AiWNc
MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish: $2a$07$./U9C8sBjqp8I90dH6hi
SHA-256: $5$rounds=5000$usesomesillystri$/Tp.6
SHA-512: $6$rounds=5000$usesomesillystri$.S5KPgErtP/EN5mcO.ChWQW21
在 crypt() 函數支持多重散列的系統上,下面的常量根據相應的類型是否可用被設置為 0 或 1:
CRYPT_STD_DES - 基於標准 DES 演算法的散列使用 "./0-9A-Za-z" 字元中的兩個字元作為鹽值。在鹽值中使用非法的字元將導致 crypt() 失敗。
CRYPT_EXT_DES - 擴展的基於 DES 演算法的散列。其鹽值為 9 個字元的字元串,由 1 個下劃線後面跟著 4 位元組循環次數和 4 位元組鹽值組成。它們被編碼成可列印字元,每個字元 6 位,有效位最少的優先。0 到 63 被編碼為 "./0-9A-Za-z"。在鹽值中使用非法的字元將導致 crypt() 失敗。
CRYPT_MD5 - MD5 散列使用一個以 $1$ 開始的 12 字元的字元串鹽值。
CRYPT_BLOWFISH - Blowfish 演算法使用如下鹽值:「$2a$」,一個兩位 cost 參數,「$」 以及 64 位由 「./0-9A-Za-z」 中的字元組合而成的字元串。在鹽值中使用此范圍之外的字元將導致 crypt() 返回一個空字元串。兩位 cost 參數是循環次數以 2 為底的對數,它的范圍是 04-31,超出這個范圍將導致 crypt() 失敗。
CRYPT_SHA256 - SHA-256 演算法使用一個以 $5$ 開頭的 16 字元字元串鹽值進行散列。如果鹽值字元串以 「rounds=$」 開頭,N 的數字值將被用來指定散列循環的執行次數,這點很像 Blowfish 演算法的 cost 參數。默認的循環次數是 5000,最小是 1000,最大是 999,999,999。超出這個范圍的 N 將會被轉換為最接近的值。
CRYPT_SHA512 - SHA-512 演算法使用一個以 $6$ 開頭的 16 字元字元串鹽值進行散列。如果鹽值字元串以 「rounds=$」 開頭,N 的數字值將被用來指定散列循環的執行次數,這點很像 Blowfish 演算法的 cost 參數。默認的循環次數是 5000,最小是 1000,最大是 999,999,999。超出這個范圍的 N 將會被轉換為最接近的值。
3. Sha1加密

string sha1 ( string $str [, bool $raw_output = false ] )
參數
str -- 輸入字元串。
raw_output -- 如果可選的 raw_output 參數被設置為 TRUE,那麼 sha1 摘要將以 20 字元長度的原始格式返回,否則返回值是一個 40 字元長度的十六進制數字。
這是也一種不可逆加密,執行如下代碼:
$password = 『123456『;
echo sha1($password);
得到的結果是
以上幾種雖然是不可逆加密,但是也可以根據查字典的方式去解密。如下的地址中就提供了可以將上面的加密結果解密出來的功能。
http://www.cmd5.com/
那大家是不是加了就算加了密,也沒用啊,其實不然,只要你的加密足夠復雜,被破解出的可能性就越小,比如用以上三種加密方式混合加密,之後我會推薦給大家一個php的加密庫。
4. URL加密
string urlencode ( string $str )
此函數便於將字元串編碼並將其用於 URL 的請求部分,同時它還便於將變數傳遞給下一頁。
返回字元串,此字元串中除了 -_. 之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進制數,空格則編碼為加號(+)。此編碼與 WWW 表單 POST 數據的編碼方式是一樣的,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。由於歷史原因,此編碼在將空格編碼為加號(+)方面與 RFC1738 編碼不同。
string urldecode ( string $str )
解碼給出的已編碼字元串中的任何 %##。 加號(『+『)被解碼成一個空格字元。
這是一種可逆加密,urlencode方法用於加密,urldecode方法用於解密,執行如下代碼:
$url = 『http://www.xxx.com/CraryPrimitiveMan/『;
$encodeUrl = urlencode($url);
echo $encodeUrl . "\n";// 如果是在網頁上展示的,就將\n修改為

echo urldecode($encodeUrl);
得到的結果如下
http%3A%2F%2Fwww.xxx.com%2FCraryPrimitiveMan%2F
http://www.xxx.com/CraryPrimitiveMan/
基於RFC 3986的加密URL的方法如下:
代碼如下:
function myUrlEncode($string) {
$entities = array(『%21『, 『%2A『, 『%27『, 『%28『, 『%29『, 『%3B『, 『%3A『, 『%40『, 『%26『, 『%3D『, 『%2B『, 『%24『, 『%2C『, 『%2F『, 『%3F『, 『%25『, 『%23『, 『%5B『, 『%5D『);
$replacements = array(『!『, 『*『, "『", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
return str_replace($entities, $replacements, urlencode($string));
}
5. Base64信息編碼加密

string base64_encode ( string $data )
使用 base64 對 data 進行編碼。
設計此種編碼是為了使二進制數據可以通過非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。
Base64-encoded 數據要比原始數據多佔用 33% 左右的空間。
string base64_decode ( string $data [, bool $strict = false ] )
對 base64 編碼的 data 進行解碼。
參數
data -- 編碼過的數據。
strict -- 如果輸入的數據超出了 base64 字母表,則返回 FALSE。
執行如下代碼:
代碼如下:
$name = 『CraryPrimitiveMan『;
$encodeName = base64_encode($name);
echo $encodeName . "\n";
echo base64_decode($encodeName);
其結果如下
代碼如下:
Q3JhcnlQcmltaXRpdmVNYW4=
CraryPrimitiveMan
推薦phpass

經 phpass 0.3 測試,在存入資料庫之前進行哈希保護用戶密碼的標准方式。 許多常用的哈希演算法如 md5,甚至是 sha1 對於密碼存儲都是不安全的, 因為駭客能夠使用那些演算法輕而易舉地破解密碼。
對密碼進行哈希最安全的方法是使用 bcrypt 演算法。開源的 phpass 庫以一個易於使用的類來提供該功能。
代碼如下:
<?php
// Include phpass 庫
require_once(『phpass-03/PasswordHash.php『)
// 初始化散列器為不可移植(這樣更安全)
$hasher = new PasswordHash(8, false);
// 計算密碼的哈希值。$hashedPassword 是一個長度為 60 個字元的字元串.
$hashedPassword = $hasher->HashPassword(『my super cool password『);
// 你現在可以安全地將 $hashedPassword 保存到資料庫中!
// 通過比較用戶輸入內容(產生的哈希值)和我們之前計算出的哈希值,來判斷用戶是否輸入了正確的密碼
$hasher->CheckPassword(『the wrong password『, $hashedPassword); // false
$hasher->CheckPassword(『my super cool password『, $hashedPassword); // true
?>

『貳』 php、asp、jsp關於開源的問題

廣義來講,可以看到程序的全部源碼,稱開源。

程序代碼開源:代碼開個屁,要看網站作者是否加密代碼了。
沒有加密就是開源的,加密了就不是開源的,比如PHP的zend加密,

個人認為:開源相對來說是編譯器的開源,
PHP是可以下載PHP的源碼自己編譯,這種叫開源。
你聽誰說過可以下載IIS的源碼自己編譯的?JSP一點都不知道,無法解釋。

2:編譯器是否開源不影響你開發的程序用於商業用途。

3:linux是開源的吧,還不是有人在賣,沒吊事。

4:打擊正版,推崇盜版。哈哈哈。。。。

『叄』 php的開源性

php 簡單來說是一個解析器,是運行PHP程序用的。
這個解析器你可以免費使用而且是開源的。

asp的解析器不是開源的更不免費,它綁到操作系統里了,操作系統是收費的

這里的開源和免費不是指的PHP程序,,
PHP程序是否開源和免費取決於製作者。

跨平台只是他的一個優點。當然其它部份語言也有這個優點。

『肆』 什麼是php開源開源是什麼意思

open source就是開源的意思,意思就是代碼可以自行修改。。

『伍』 Php開源什麼意思,干什麼的

與你這個使用者關系不太大,開源指其許可協議 (license)。
php使用的許可協議是類似BSD的,還有個比較常使的叫GPL。

我先說GPL比較好,GPL是個限制性很強的開源license。一旦用GPL發行軟體,則必須帶有源代碼。允許軟體使用者修改源代碼,修改後可重新發行,但必須繼續以GPL做許可協議,並且一定也要帶有源代碼。「發行」不一定是免費的。

BSD license關鍵特點在於完全免費,也可以修改源代碼後發行,可以不再以BSD協議發行,使用上幾乎完全自由。

你可以看到兩者的一些區別:
BSD的軟體被修改後不再以BSD許可協議發行,因此可以不帶源代碼,用戶不能再修改了,往往被直接用作商業用途。有很多商業例子,像mac os x就是使用FreeBSD的內核,加上蘋果自己的圖形系統。
GPL的軟體強制性要帶有源代碼,其修改後的產品也只能用GPL繼續發行,確保以後的用戶有修改的權利,也確保了用戶不能將別人的代碼「據為己有」。
GPL軟體其實是可以賣錢的,最少可以賣出一次。但「再發行者」要免費,原始作者也沒辦法阻止。

你作為php的使用者,你用php生產產品,不帶有php這個工具的一部分,所以不屬於修改php的源代碼。

『陸』 開源的php系統,哪家個好

復制的?dede沒用過,帝國功能挺全,弄懂的挺不錯的東西,但是感覺封裝的太嚴重,ecshop改起來很順手,還有個什麼easycms的,至於你那麼追求速度,為什麼不把硬體整整,模板的速度快慢主要看代碼的優化可好,你網站放伺服器上就要看伺服器的配置咋樣,個人感覺你考慮這個沒什麼意義,每個人的電腦配置不同

『柒』 請教php源碼加密及解密問題

用dw編輯器自帶的加密工具,或者自己寫js加密解密腳本

『捌』 php生成pdf格式文件並且加密

本文給大家介紹的是如何使用php生成pdf文件,並且把該文件加密或設置訪問密碼的方法,有需要的小夥伴可以參考下。
項目需求:php生成pdf文件,並且把該文件加密或設置訪問密碼
開源的TCPDF是基於PHP的一套類庫,它能夠很好的生成PDF格式的文檔。並且支持文件加密,在目前的開源PHP框架、系統、應用中也使用得很廣。這里是設置PDF文檔的相關屬性的方法原型,其中就可以設置密碼
?
1
2
3
4
5
6
7
8
TCPDF::SetProtection
(
$permissions
=
array('print',
'modify',
'',
'annot-forms',
'fill-forms',
'extract',
'assemble',
'print-high'),
$user_pass
=
'',
$owner_pass
=
null,
$mode
=
0,
$pubkeys
=
null
)
通過SetProtection()方法設置後,生成的PDF文檔就是加密過的,在用戶打開PDF文檔的時候就會要求輸入訪問密碼

『玖』 對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 screw 加密什麼樣

PHP_Screw是一款免費的針對PHP源碼進行加密的PHP的擴展,可以自定義加密種子文件,加密後的文件效率還不會下降,目前還沒有被破解。下面介紹一下安裝和使用方法
最新版本是php_screw_1.5
wget http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz
官方站點只能下到源碼
從官方站點下載最新版本:
http://sourceforge.net/project/showfiles.php?group_id=52025
安裝步驟:
1. 下載源碼:
wget http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz
2. 解壓縮:
tar zxvf php_screw_1.5.tar.gz
3. 通過README.en文件可以看到該版本軟體包要求PHP5.x 環境,並要求zlib支持(通過執行腳本來檢查)。如果你使用的是PHP4.X版本,請下載php_screw_1.3版本
4. 進入源碼目錄
#cd php_screw_1.5
root@Server:~/php_screw-1.5# vim php_screw.h
#define PM9SCREW 「\tPM9SCREW\t」
#define PM9SCREW_LEN 10
#define PM9SCREW 「\tLAURENCE\t」
#define PM9SCREW_LEN 9

5. php_screw.h文件,如果不改這個文件,你加密的文件內容開頭就會有 PM9SCREW ,你復制到google搜索下就知道是用screw模塊加密的,雖然目前網上沒發現解密演算法,但以後就不一定,這么做就是為了隱藏加密演算法,可以讓別人不 知道你是用的什麼演算法加的密。改成COOL後10也要改成6.因為LAURENCE後字元長度是9發字元,如果你不對應加密後解密解析不了。
my_screw.h
root@Server:~/php_screw-1.5# vim my_screw.h
short pm9screw_mycryptkey[] = {
11152, 368, 192, 1281, 62
};
short pm9screw_mycryptkey[] = {
12852, 968, 192, 1281, 62, 269
};
自定義加密種子文件,這個可能是該程序的亮點,用你喜歡的文本編輯器打開源碼目錄下的my_screw.h,修改文件裡面的數組文件,可以用數字添 加該數組的長度。數組越長,加密越可靠。而且該數組的長度不會影響加密以及你的PHP程序執行的速度.測試發現不要大於5位數,大了就會解密解析有問題。

閱讀全文

與php加密系統開源相關的資料

熱點內容
非科班程序員自學 瀏覽:799
壓縮泡沫鞋底底材 瀏覽:217
程序員職場第一課2正確的溝通 瀏覽:677
遇到不合法app應該怎麼辦 瀏覽:90
匯編程序編譯後的文件 瀏覽:77
大智慧均線源碼 瀏覽:371
單片機排阻的作用 瀏覽:213
滴滴金融app被下架如何還款 瀏覽:210
jpg轉換成pdf免費軟體 瀏覽:741
范里安pdf 瀏覽:443
偽造pdf 瀏覽:75
能刪除android文件夾嗎 瀏覽:446
LINUX使用V2ray 瀏覽:797
找人幫忙注冊app推廣是什麼 瀏覽:820
獨立伺服器如何恢復初始化 瀏覽:11
優秀到不能被忽視pdf 瀏覽:316
導遊程序員家政 瀏覽:586
22乘28的快速演算法 瀏覽:338
軟通動力程序員節2021 瀏覽:846
安卓系統如何卸載安裝包 瀏覽:870