PHP:mcrypt密钥?

时间:2010-07-22 03:35:57

标签: php

请不要介意我问这个,但我是php的新手,我需要加密和解密密码。我想通过URL发送密码,所以我听说这是使用mycrypt最安全的方式。

我在mycrypt函数中没有得到KEY的东西? 不应该像密码本身一样秘密。例如我正在使用PHP手册中的这个函数:

    <?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "this is my personal decryption key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text) . "\n";

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    echo strlen($crypttext) . "\n";
    ?>

我可以将$ key设置为我想要的任何内容吗?如果有人下载我设置此$ key的文档源,该怎么办?他能够轻松地再次解密$ text。不是吗?或者这个功能有问题吗?

1 个答案:

答案 0 :(得分:1)

使用TLS(HTTPS)可能更简单,更安全。这可以使用相同的技术(例如AES / Rijndael),但可以为您处理许多细节,包括密钥分发。如果使用mcrypt,则需要找到一种安全的方式来交换密钥和IV(初始化向量)。

你显然还需要保护钥匙和IV。因此,如果它嵌入在您的PHP文件中,您必须注意保护该文件。但是,记住服务器端和客户端之间的区别非常重要。除非您的脚本中有错误,否则密钥不会泄漏到生成的HTML文件中。