2011-07-26 46 views
2

我正在嘗試使用Paypal PHP SDK,並且發現了一條警告,說我應該加密我的API用戶名和密碼以便在生產環境中使用。我同意這一說法,但我想知道我應該如何去做。我目前沒有線索。我應該如何在PHP應用程序中加密我的數據?

這裏的警告說什麼,只是備案:

在應用程序代碼不嵌入明文憑據。這樣做 是不安全的,違背了最佳實踐。您的API憑證必須安全地處理爲 。請考慮對它們進行加密以便在任何 生產環境中使用,並確保只有授權人員可以查看或修改它們。

在此先感謝。

+3

PHP SDK是什麼? – ceejayoz

+0

編碼!=加密。你什麼意思? – KingCrunch

+0

對不起,在OP中做了一些拼寫錯誤和錯誤。是的,我的意思是加密和PHP Paypal SDK。現在糾正。 –

回答

1

首先,設置加密密鑰:

$key = 'yourpasswordhere'; 
$string = ' confidential information here '; // note the spaces 

它加密的數據庫輸入或從另一個文件,並只保存文件本身的加密字符串:

$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key)))); 
var_dump($encrypted); // "ey7zu5zBqJB0rGtIn5UB1xG03efyCp+KSNR4/GAv14w=" 

後來解密:

$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0"); 
var_dump($decrypted); // " confidential information here " 
+0

謝謝,我會使用它。 –

2

通常,您可以將此類憑據存儲在Web根目錄外的文件中。這限制了風險,但並沒有完全擺脫它。

如果他們能看到你的代碼(或者更糟糕的話,編輯它),那麼他們無論如何都可以獲得你的憑證。加密它意味着你需要你的加密密鑰在某個地方,就像用戶名/密碼本身一樣可見。

+0

感謝您的回答,但如果我無法訪問超出網絡文件夾的根目錄?看起來,它在安全性方面並沒有比以純文本形式存儲憑據差很多。 –

+0

使用.htaccess阻止對它的訪問 – Jonah

相關問題