md5加密解密

时间:2012-08-06 09:10:09

标签: php codeigniter

我的数据库表中有一个名为download_key的字段。它通常保存在表中,不进行加密。我将此密钥作为隐藏值发送到表单中。如果有人右键单击页面并查看页面源,则可以看到该键。是否可以仅在视图中加密它?我还将密钥的隐藏值与存储在数据库中的隐藏值进行比较。

一些代码

控制器

$query = $this->db->get_where('mc_boxes', array('idmc_boxes' => $id));
$row = $query->row();
$data['download_key'] = strtolower($row->downloadkey);

在我的观点中

<form name="form" method="post" onsubmit="return validateForm('<?php echo $download_key ?>')"> 
    <input type="hidden" name="key" value="<?php echo $download_key ?>" />
</form>

5 个答案:

答案 0 :(得分:1)

为什么不使用会话?

$_SESSION['DL_KEY'] = strtolower($row->downloadkey);

并没有必要以“

”的形式回应它

答案 1 :(得分:1)

尝试使用带密钥的可逆加密(仅在您的配置中,对其他任何人隐藏)。

$key = 'YOUR_UNIQUE_KEY_HERE';
$phrase = 'PHRASE_TO_DECODE_OR_ENCODE';
if ($method == 'encode')
    return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $phrase, MCRYPT_MODE_ECB, mcrypt_create_iv(32, MCRYPT_RAND)));
else if ($method == 'decode')
    return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($phrase), MCRYPT_MODE_ECB, mcrypt_create_iv(32, MCRYPT_RAND)));

答案 2 :(得分:1)

可以使用加密/解密功能 - 请查看http://codeigniter.com/user_guide/libraries/encryption.html

$msg = 'My secret message';
$key = 'super-secret-key';

$encrypted_string = $this->encrypt->encode($msg, $key);

$encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84';

$plaintext_string = $this->encrypt->decode($encrypted_string);

看看这对您的情况是否有帮助。 :)

答案 3 :(得分:0)

查看函数md5。这是一个原生的PHP功能。与codeigniter无关。

string md5 ( string $str [, bool $raw_output = false ] )是函数签名。

答案 4 :(得分:0)

以下列形式打印您的密钥:

    echo $this->encrypt->encode($download_key); 

然后,在它插入数据库之前,执行以下操作:

    $download_key = $this->encypt->decode($download_key);