欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php數(shù)據(jù)庫數(shù)據(jù)加密存儲 php數(shù)據(jù)庫密碼加密

如何對PHP文件進(jìn)行加密

Zend Guard是目前市面上最成熟的PHP源碼加密產(chǎn)品。

十年的利津網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整利津建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“利津網(wǎng)站設(shè)計(jì)”,“利津網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

經(jīng)過本人搜集資料,親身測試后,總結(jié)了如何利用Zend Guard對PHP文件進(jìn)行加密,以及如何利用Zend Loader對加密后的PHP文件進(jìn)行解密。

我使用的是Wampserver2.2,其中php的版本是5.3.10。(注意:這個(gè)里面自帶的php版本屬于TS版本,即Thread safety線程安全)

Zend Guard的安裝及破解

點(diǎn)擊下載 Zend Guard5.5.0,下載完成后,請自行傻瓜式安裝。

破解需要注意以下幾點(diǎn):

1、本KEY的有效時(shí)間為2010年7月10號,因此激活時(shí),請將自己電腦的系統(tǒng)時(shí)間調(diào)整到這個(gè)時(shí)間之前,如:2009-01-01

2、本KEY激活的為試用版,加密過的文件只有14天有效時(shí)間,因此在加密文件時(shí),請將自己電腦的系統(tǒng)時(shí)間向后調(diào)整幾年,如:2020-01-01

3、點(diǎn)擊下載授權(quán)文件 zend_guard授權(quán)文件.zip,解壓得到zend_guard.zl,即激活用的文件

4、打開Zend Guard 5.5.0,[Help] - [Register] - [Search for a license file on my disk],選擇zend_guard.zl授權(quán)文件激活即可

如何使用Zend Guard進(jìn)行加密?

1、打開Zend Guard 5.5.0,[File]-[New]-[Zend Guard Project],新建項(xiàng)目。

彈出如下的對話框:

2、點(diǎn)擊 Next ,下一步。彈出如下對話框,選擇要進(jìn)行加密的源文件或文件夾。

本步驟是選擇要加密的文件,可以是單個(gè)文件[Add File]或整個(gè)文件夾[Add Folder],然后[Next]。

(此處,我選擇的是對整個(gè)文件夾進(jìn)行加密。即 D:\wamp\www\demo 里的所有文件進(jìn)行加密。)

3、接下來是選擇PHP的版本[與你web服務(wù)器上PHP的版本相對照],這里很重要,版本不對會出錯(cuò),[Finish]完成項(xiàng)目的創(chuàng)建。

注意: 對于Zend Guard 5.5.0這個(gè)版本的加密軟件,最高只可支持5.3版本的PHP。如果您的PHP版本較高,請到Zend Guard官網(wǎng)下載對應(yīng)的高版本加密軟件。

(由于,我的PHP版本是PHP 5.3.10,故這里我選擇PHP 5.3,其他地方可以默認(rèn),直接點(diǎn)擊完成)

4、在Zend Guard左側(cè)的Guard Explorer中,可以看到你新建的項(xiàng)目了,鼠標(biāo)選中項(xiàng)目名稱后,右鍵單擊[Encode Project],完成。

如此,就實(shí)現(xiàn)了對PHP源碼的最簡單的加密。

我們可以在產(chǎn)品的輸出目錄(D:\productDir)里,看到加密后的文件。

可以看出,產(chǎn)品輸出目錄里的PHP文件已被加密了。

這種最簡單的加密方式,我們并沒有設(shè)置加密的有效期,也沒有設(shè)置許可證支持(即解密時(shí),是否需要許可證文件),默認(rèn)是永不過期,不需要解密許可文件。

如果要設(shè)置解密時(shí)的許可證文件,可以點(diǎn)擊 項(xiàng)目名稱(project_test) ,再點(diǎn)擊 項(xiàng)目主窗口中的 Overview 旁邊的 Security 選項(xiàng)卡,就可以進(jìn)行更加安全的加密設(shè)置了。 如下圖:

Zend Loader 解密

上面我們已經(jīng)對PHP代碼進(jìn)行了最簡單的加密(編碼),加密后生成的PHP源代碼,就不能再被web服務(wù)器上的PHP模塊解析了。

當(dāng)我們將加密后的php文件放到web服務(wù)器上執(zhí)行時(shí),會顯示如下信息:

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模塊才能正常運(yùn)行。

因?yàn)槲业膒hp版本是5.3.10的,所以我這里只提供了ZendGuardLoader-php-5.3-Windows,如果是其他版本的php,請自行百度。

點(diǎn)擊下載 ZendGuardLoader-php-5.3-Windows

下載后,解壓壓縮包,找到目錄里的 ZendLoader.dll 文件,將它復(fù)制到你的php目錄里的ext目錄(PHP的擴(kuò)展庫目錄)下,再編輯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文件的時(shí)候,沒有設(shè)置許可證支持,故解密時(shí),禁用許可證)

zend_loader.obfuscation_level_support 表示代碼混淆級別

zend_loader.license_path 指定許可證文件的路徑

zend_extension 指定zend loader 擴(kuò)展文件 的路徑

配置完成后,重啟wampserver,如果您的php的版本是NTS(非線程安全的話),就可以正常執(zhí)行加密后的PHP文件了。

但是,多數(shù)情況下的php版本都是TS(線程安全)的,比如,我這個(gè)wampserver集成環(huán)境中的php是php-5.3.10-ts,它是沒有辦法支持Zend Guard Loader擴(kuò)展文件的。故還會報(bào)出上面的錯(cuò)誤提示信息。

因?yàn)椋琙end Guard Loader 只能支持 NTS版本的php,終極解決辦法是下載安裝 NTS 版本的php。

為了實(shí)現(xiàn)PHP源文件的 Zend 解密測試,可以下載安裝 php-5.3.29-nts-Win32-VC9-x86,再來配置 Zend Loader 擴(kuò)展支持。

如何查看安裝好的PHP的版本及PHP是否已經(jīng)成功支持Zend Loader?

通過查看 phpinfo() 函數(shù)的輸出信息,利用 Ctrl + F 快速查找關(guān)鍵字Thread Safety 和 Zend Guard Loader。

如本人安裝好php-5.3.29-nts版本的php后,phpinfo()的輸出信息如下:

可以看到,Thread Safety 對應(yīng)的值為disabled,就說明該php的版本是 NTS (非線程安全)的,否則就是TS版本的。

輸出信息中,還可以看到 Zend Guard Loader v3.3 字樣,說明 Zend Guard Loader 也安裝成功了。

再往下面看,還可以查看 Zend Guard Loader 的配置信息,如下:

到此,整個(gè) Zend Guard 加密和 Zend Guard Loader 解密,就介紹完畢了。

溫馨提示: 為了順利實(shí)現(xiàn)PHP代碼的zend加密和解密,建議使用PHP官網(wǎng)上主流的PHP的NTS版和Zend官網(wǎng)上對應(yīng)的Zend Guard加密軟件、 Zend Guard Loader解密插件。

相關(guān)附件:

Wampserver2.2

Zend

Guard5.5.0

php-5.3.29-nts-Win32-VC9-x86

mod_fcgid-2.3.6-win32-x86.zip

PHP 操作 sqlite 時(shí)如何為 sqlite加密 和防止 用戶下載數(shù)據(jù)庫?

Sqlite數(shù)據(jù)庫的加密

1、創(chuàng)建空的sqlite數(shù)據(jù)庫。

//數(shù)據(jù)庫名的后綴你可以直接指定,甚至沒有后綴都可以

//方法一:創(chuàng)建一個(gè)空sqlite數(shù)據(jù)庫,用IO的方式

FileStream?fs?=?File.Create(“c:\\test.db“);

//方法二:用SQLiteConnection

SQLiteConnection.CreateFile(“c:\\test.db“);

創(chuàng)建的數(shù)據(jù)庫是個(gè)0字節(jié)的文件。

2、創(chuàng)建加密的空sqlite數(shù)據(jù)庫

//創(chuàng)建一個(gè)密碼為password的空的sqlite數(shù)據(jù)庫

SQLiteConnection.CreateFile(“c:\\test2.db“);????????????????

SQLiteConnection?cnn?=?new?SQLiteConnection(“Data?Source=c:\\test2.db“);

SQLiteConnection?cnn?=?new?SQLiteConnection(“Data?Source=D:\\test2.db“);

cnn.Open();

cnn.ChangePassword(“password“);

3、給未加密的數(shù)據(jù)庫加密

SQLiteConnection?cnn?=?new?SQLiteConnection(“Data?Source=c:\\test.db“);

cnn.Open();

cnn.ChangePassword(“password“);

4、打開加密sqlite數(shù)據(jù)庫

//方法一

SQLiteConnection?cnn?=?new?SQLiteConnection(“Data?Source=c:\\test2.db“);

cnn.SetPassword(“password“);

cnn.Open();

//方法二

SQLiteConnectionStringBuilder?builder?=?new?SQLiteConnectionStringBuilder();

builder.DataSource?=?@”c:\test.db“;

builder.Password?=?@”password“;

SQLiteConnection?cnn?=?new?SQLiteConnection(builder.ConnectionString);

cnn?.Open();

分頁

select?*?from?messages?limit?10,100;

表示跳過10行,取100行的返回結(jié)果。

thinkphp數(shù)據(jù)庫配置信息加密怎么處理

今天有一個(gè)朋友問我thinkphp的這個(gè)問題,剛好百度搜索到你這個(gè)問題。已經(jīng)解決。就幫你解答一下這個(gè)問題。

首先我嘗試在入口文件封裝一個(gè)加密函數(shù),我用php des 加密,然后在配置文件config.php調(diào)用。然后在控制器里面使用,打印配置文件:dump(C());//輸出所有的配置文件信息, 雖然能看到正確的數(shù)據(jù)用戶名和密碼,但是會報(bào)錯(cuò)。失敗告終。

我說一下我的解決方法。很簡單。

1:把配置文件里面的用戶名,密碼,數(shù)據(jù)庫名瞎寫一寫,別人看到你的代碼的配置文件看到的就是錯(cuò)誤的數(shù)據(jù)庫名和密碼了。比如:

'DB_NAME' = 'SB', // 數(shù)據(jù)庫名

'DB_USER' = 'ni_da_ye', // 用戶名

'DB_PWD' = 'da_da_bi', // 密碼

在每個(gè)控制器文件里面。加入一段代碼。

比如你的IndexController.class.php文件。加下面的代碼。

/* 初始化方法*/

public function __construct(){

parent::__construct();

C("DB_NAME",decrypt('712349721937491237'));//數(shù)據(jù)庫名,

C('DB_USER',decrypt('712349721937491237'));//用戶名

C('DB_PWD',decrypt('712349721937491237'));//密碼

}

看清楚了嗎?

decrypt()這個(gè)函數(shù)就是我封裝的一個(gè)加密函數(shù),親自測試沒有錯(cuò)誤。可能會犧牲一些性能。但是保證了用戶名,密碼,數(shù)據(jù)庫名沒有泄露。甚至你都可以把數(shù)據(jù)庫連接地址也加密一下。希望能幫到你。

PHP加密函數(shù)可以考慮用des,aes這些可逆加密。別用什么md4,md5.

用php將密碼存入數(shù)據(jù)庫,用什么方法進(jìn)行加密?

題主你可以使用 md5 或者 sha1 進(jìn)行初步處理,但為了更加安全,請你同時(shí)加上兩個(gè) salt,一個(gè)靜態(tài) salt,一個(gè)動態(tài)的 salt。以 md5 為例:

假設(shè)通過 POST 傳來的密碼為 $_POST['password'],在存入 DB 前先進(jìn)行如下的操作:

$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);

為了保證動態(tài) salt 的唯一性,可以這樣操作:

$dynamicSalt = hash('md5', microtime());

對于動態(tài)的 salt 可以與生成的密碼一起保存在 DB 中,而靜態(tài) salt 則可以直接放在類文件中(例如定義為一個(gè)靜態(tài)屬性即可)。

首先謝謝題主采納了我的答案,但是我之前的回答并不是最佳答案,之所以有此加密的想法源于自己所讀的源碼可能比較老,所以并沒使用上較新版本的加密方法,例如 bcrypt等。

此外,第二點(diǎn),感謝評論中幾位前輩的提點(diǎn),已經(jīng)明白設(shè)置靜態(tài) salt 的意義并不大,生成一個(gè)較長的動態(tài) salt 已然可以解決問題。

LZ應(yīng)該采用加鹽HASH。

如何“腌制”密碼呢?

=_,=

正確的格式應(yīng)該是,用戶password+動態(tài)的salt

動態(tài)的salt不能像2L所說的,使用microtime,因?yàn)闀r(shí)間在某些情況下不夠隨機(jī),而且是可能被猜解的。

這里推薦一個(gè)我用的加鹽HASH

$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));

$password=sha1($register_password.$salt);

解釋:

首先使用mcrypt,產(chǎn)生電腦隨機(jī)生成的,專門用戶加密的隨機(jī)數(shù)函數(shù)。

第二步,把得到的隨機(jī)數(shù)通過base64加密,使其變長并且不利于猜解。

第三步,把得出的鹽拼接到密碼的后面,再對其使用sha1進(jìn)行哈希

再把password存入到用戶的數(shù)據(jù)庫。

PS:為何不用靜態(tài)的salt?沒有必要,使用一個(gè)動態(tài)隨機(jī)足夠長的鹽足矣。

為何不用MD5?因?yàn)殚L度不夠。

為何沒有使用多次HASH?因?yàn)檫@樣反而容易發(fā)生碰撞。

HASH好之后怎么使用“腌制”好的密碼?

用戶注冊-提交密碼-產(chǎn)生salt-腌制好的密碼存入數(shù)據(jù)庫-salt存入數(shù)據(jù)庫。

用戶登錄-提交密碼-調(diào)用salt接到提交密碼的后面-進(jìn)行HASH-調(diào)用之前注冊腌制好的密碼-對比HASH值是否和這個(gè)密碼相同

php excel加密的實(shí)現(xiàn)方法有什么

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

1. MD5加密

string md5 ( string $str [, bool $raw_output = false ] )

參數(shù)

str -- 原始字符串。

raw_output -- 如果可選的 raw_output 被設(shè)置為 TRUE,那么 MD5 報(bào)文摘要將以16字節(jié)長度的原始二進(jìn)制格式返回。

這是一種不可逆加密,執(zhí)行如下的代碼

$password = ‘123456‘;

echo md5($password);

得到結(jié)果是e10adc3949ba59abbe56e057f20f883e

2. Crype加密

string crypt ( string $str [, string $salt ] )

crypt() 返回一個(gè)基于標(biāo)準(zhǔn) UNIX DES 算法或系統(tǒng)上其他可用的替代算法的散列字符串。

參數(shù)

str -- 待散列的字符串。

salt -- 可選的鹽值字符串。如果沒有提供,算法行為將由不同的算法實(shí)現(xiàn)決定,并可能導(dǎo)致不可預(yù)料的結(jié)束。

這是也一種不可逆加密,執(zhí)行如下的代碼

代碼如下:

$password = ‘123456‘;

$salt = "test";// 只取前兩個(gè)

echo crypt($password, $salt);

得到的結(jié)果是teMGKvBPcptKo

使用自動鹽值的例子如下:

代碼如下:

$password = crypt(‘mypassword‘); // 自動生成鹽值

/* 你應(yīng)當(dāng)使用 crypt() 得到的完整結(jié)果作為鹽值進(jìn)行密碼校驗(yàn),以此來避免使用不同散列算法導(dǎo)致的問題。(如上所述,基于標(biāo)準(zhǔn) DES 算法的密碼散列使用 2 字符鹽值,但是基于 MD5 算法的散列使用 12 個(gè)字符鹽值。)*/

if (crypt(‘mypassword‘, $password) == $password) {

echo "Password verified!";

}

執(zhí)行結(jié)果是輸出 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";

}

其結(jié)果如下

Standard DES: rl.3StKT.4T8M

Extended DES: _J9..rasmBYk8r9AiWNc

MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0

Blowfish: $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi

SHA-256: $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6

SHA-512: $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

在 crypt() 函數(shù)支持多重散列的系統(tǒng)上,下面的常量根據(jù)相應(yīng)的類型是否可用被設(shè)置為 0 或 1:

CRYPT_STD_DES - 基于標(biāo)準(zhǔn) DES 算法的散列使用 "./0-9A-Za-z" 字符中的兩個(gè)字符作為鹽值。在鹽值中使用非法的字符將導(dǎo)致 crypt() 失敗。

CRYPT_EXT_DES - 擴(kuò)展的基于 DES 算法的散列。其鹽值為 9 個(gè)字符的字符串,由 1 個(gè)下劃線后面跟著 4 字節(jié)循環(huán)次數(shù)和 4 字節(jié)鹽值組成。它們被編碼成可打印字符,每個(gè)字符 6 位,有效位最少的優(yōu)先。0 到 63 被編碼為 "./0-9A-Za-z"。在鹽值中使用非法的字符將導(dǎo)致 crypt() 失敗。

CRYPT_MD5 - MD5 散列使用一個(gè)以 $1$ 開始的 12 字符的字符串鹽值。

CRYPT_BLOWFISH - Blowfish 算法使用如下鹽值:“$2a$”,一個(gè)兩位 cost 參數(shù),“$” 以及 64 位由 “./0-9A-Za-z” 中的字符組合而成的字符串。在鹽值中使用此范圍之外的字符將導(dǎo)致 crypt() 返回一個(gè)空字符串。兩位 cost 參數(shù)是循環(huán)次數(shù)以 2 為底的對數(shù),它的范圍是 04-31,超出這個(gè)范圍將導(dǎo)致 crypt() 失敗。

CRYPT_SHA256 - SHA-256 算法使用一個(gè)以 $5$ 開頭的 16 字符字符串鹽值進(jìn)行散列。如果鹽值字符串以 “rounds=$” 開頭,N 的數(shù)字值將被用來指定散列循環(huán)的執(zhí)行次數(shù),這點(diǎn)很像 Blowfish 算法的 cost 參數(shù)。默認(rèn)的循環(huán)次數(shù)是 5000,最小是 1000,最大是 999,999,999。超出這個(gè)范圍的 N 將會被轉(zhuǎn)換為最接近的值。

CRYPT_SHA512 - SHA-512 算法使用一個(gè)以 $6$ 開頭的 16 字符字符串鹽值進(jìn)行散列。如果鹽值字符串以 “rounds=$” 開頭,N 的數(shù)字值將被用來指定散列循環(huán)的執(zhí)行次數(shù),這點(diǎn)很像 Blowfish 算法的 cost 參數(shù)。默認(rèn)的循環(huán)次數(shù)是 5000,最小是 1000,最大是 999,999,999。超出這個(gè)范圍的 N 將會被轉(zhuǎn)換為最接近的值。

3. Sha1加密

string sha1 ( string $str [, bool $raw_output = false ] )

參數(shù)

str -- 輸入字符串。

raw_output -- 如果可選的 raw_output 參數(shù)被設(shè)置為 TRUE,那么 sha1 摘要將以 20 字符長度的原始格式返回,否則返回值是一個(gè) 40 字符長度的十六進(jìn)制數(shù)字。

這是也一種不可逆加密,執(zhí)行如下代碼:

$password = ‘123456‘;

echo sha1($password);

得到的結(jié)果是7c4a8d09ca3762af61e59520943dc26494f8941b

以上幾種雖然是不可逆加密,但是也可以根據(jù)查字典的方式去解密。如下的地址中就提供了可以將上面的加密結(jié)果解密出來的功能。

那大家是不是加了就算加了密,也沒用啊,其實(shí)不然,只要你的加密足夠復(fù)雜,被破解出的可能性就越小,比如用以上三種加密方式混合加密,之后我會推薦給大家一個(gè)php的加密庫。

4. URL加密

string urlencode ( string $str )

此函數(shù)便于將字符串編碼并將其用于 URL 的請求部分,同時(shí)它還便于將變量傳遞給下一頁。

返回字符串,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進(jìn)制數(shù),空格則編碼為加號(+)。此編碼與 WWW 表單 POST 數(shù)據(jù)的編碼方式是一樣的,同時(shí)與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。由于歷史原因,此編碼在將空格編碼為加號(+)方面與 RFC1738 編碼不同。

string urldecode ( string $str )

解碼給出的已編碼字符串中的任何 %##。 加號(‘+‘)被解碼成一個(gè)空格字符。

這是一種可逆加密,urlencode方法用于加密,urldecode方法用于解密,執(zhí)行如下代碼:

$url = ‘‘;

$encodeUrl = urlencode($url);

echo $encodeUrl . "\n";// 如果是在網(wǎng)頁上展示的,就將\n修改為

echo urldecode($encodeUrl);

得到的結(jié)果如下

http%3A%2F%2F

基于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 進(jìn)行編碼。

設(shè)計(jì)此種編碼是為了使二進(jìn)制數(shù)據(jù)可以通過非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。

Base64-encoded 數(shù)據(jù)要比原始數(shù)據(jù)多占用 33% 左右的空間。

string base64_decode ( string $data [, bool $strict = false ] )

對 base64 編碼的 data 進(jìn)行解碼。

參數(shù)

data -- 編碼過的數(shù)據(jù)。

strict -- 如果輸入的數(shù)據(jù)超出了 base64 字母表,則返回 FALSE。

執(zhí)行如下代碼:

代碼如下:

$name = ‘CraryPrimitiveMan‘;

$encodeName = base64_encode($name);

echo $encodeName . "\n";

echo base64_decode($encodeName);

其結(jié)果如下

代碼如下:

Q3JhcnlQcmltaXRpdmVNYW4=

CraryPrimitiveMan

推薦phpass

經(jīng) phpass 0.3 測試,在存入數(shù)據(jù)庫之前進(jìn)行哈希保護(hù)用戶密碼的標(biāo)準(zhǔn)方式。 許多常用的哈希算法如 md5,甚至是 sha1 對于密碼存儲都是不安全的, 因?yàn)轳斂湍軌蚴褂媚切┧惴ㄝp而易舉地破解密碼。

對密碼進(jìn)行哈希最安全的方法是使用 bcrypt 算法。開源的 phpass 庫以一個(gè)易于使用的類來提供該功能。

代碼如下:

?php

// Include phpass 庫

require_once(‘phpass-03/PasswordHash.php‘)

// 初始化散列器為不可移植(這樣更安全)

$hasher = new PasswordHash(8, false);

// 計(jì)算密碼的哈希值。$hashedPassword 是一個(gè)長度為 60 個(gè)字符的字符串.

$hashedPassword = $hasher-HashPassword(‘my super cool password‘);

// 你現(xiàn)在可以安全地將 $hashedPassword 保存到數(shù)據(jù)庫中!

// 通過比較用戶輸入內(nèi)容(產(chǎn)生的哈希值)和我們之前計(jì)算出的哈希值,來判斷用戶是否輸入了正確的密碼

$hasher-CheckPassword(‘the wrong password‘, $hashedPassword); // false

$hasher-CheckPassword(‘my super cool password‘, $hashedPassword); // true

?

標(biāo)題名稱:php數(shù)據(jù)庫數(shù)據(jù)加密存儲 php數(shù)據(jù)庫密碼加密
文章起源:http://chinadenli.net/article28/dooghjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司品牌網(wǎng)站設(shè)計(jì)網(wǎng)站收錄手機(jī)網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)