我试图使用Paypal PHP SDK,我注意到一条警告说我应该加密我的API用户名和密码,以便在生产环境中使用。我同意这个说法,但我想知道我应该怎么做。我目前没有任何线索。
这是警告所说的,仅供记录:
不要在应用程序代码中嵌入纯文本凭据。这样做 是不安全的,反对最佳做法。您的API凭据必须是 安全处理。请考虑加密它们以供任何使用 生产环境,并确保只有经过授权的个人 可以查看或修改它们。
提前致谢。
答案 0 :(得分:2)
通常,您可以将此类凭据存储在Web根目录之外的文件中。这限制了风险,但并没有完全摆脱它。
如果他们可以看到您的代码(或者更糟糕的是,编辑它),那么无论如何他们都可以获得您的凭据。对它进行加密意味着您需要一个与用户名/密码本身一样可见的加密密钥。
答案 1 :(得分: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 "