【问题标题】:How to show encrypted password in URL如何在 URL 中显示加密的密码
【发布时间】:2014-10-06 09:15:56
【问题描述】:

我加密了密码,现在尝试在 URL 中显示,但在 URL 中我总是得到真实的密码:kimd

我猜我是not passing $encrypted_string in url,请检查我的 php 脚本并告诉我How can i pass $encrypted_string in URL

每当我调用我的表单获取所有内容时,详细信息如下:actual passwordencrypted passworddecrypted password

举个例子:

原创 uppass:kimd

加密 uppass : 5¾VªÜly.TÀîÈ¥MÜQüÑLøø‹y\ñU

解密 uppass:kimd

legals.php:-

<?php
.......................
// Create the initialization vector for added security.
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);

// Encrypt $string
$encrypted_string = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $upass, MCRYPT_MODE_CBC, $iv);

// Decrypt $string
$decrypted_string = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secret_key, $encrypted_string, MCRYPT_MODE_CBC, $iv);
................................
?>

我只想显示encrypted password in URL 不是实际密码,我在法律表中有两个字段,即:- unameupass

我在哪里做错了?请告诉我..

【问题讨论】:

  • 第一个错误是你通过 URL 发送密码,不管它是否加密!!
  • 你要不要使用jQuery Ajax?如果是,那我可以建议你!!
  • 是的,我将使用 JQuery ajax
  • ok.. 你必须在密码的 onchange 事件上调用一个 jquery 函数,该函数获取密码并使用 jQuery Ajax 发送到 php 页面进行加密。您将获得加密响应并将其作为值保存在 标记中,然后触发提交事件!就是这样!
  • 希望您了解 jQuery Ajax!所以我没有在这里编码!

标签: php encryption get getmethod get-method


【解决方案1】:

首先,Its not good practice to send Password through GET parameters。它应该总是通过 POST 参数发送

 <form method="POST" id="contact_form" action="legals.php">

您可以将它们检索为:

$uname = $_POST['uname'];
$upass = $_POST['upass'];

但如果您想在 URL 中加密,请在您的 .php 文件中仅使用 base64_encode() or md5()

【讨论】:

  • 我也尝试了 md5() 但没有得到解决方案,你能告诉我按照你的想法我必须在哪里进行更改吗?
  • 你能分享你的sn-p的HTML代码吗?为什么使用GET参数?为什么不发布?
  • 我发布了我的 HTML 脚本,请查看上面的内容,我只能使用要求的 GET 参数,我不知道为什么?
  • 酷。因此,我更新了我的答案。在你的 HTML 中试试这个。并按照我的回答中提到的那样在你的 PHP 中检索,一切都会很完美。:)
  • 兄弟问题仍然存在,获取实际密码,我想我没有在 url 中传递 $encrypted_string,请检查我的 php 脚本并告诉我如何在 URL 中传递 $encrypted_string
【解决方案2】:

我绝不是专家,但从您发布的代码来看,您的查询“SELECT * FROM legals WHERE upass = '$upass'”似乎正在从您的数据库。尽管您已经回显了加密和解密的字符串,但我看不出您在哪里以任何其他方式使用加密字符串。

【讨论】:

    【解决方案3】:

    这是你的答案,假设你可以得到$ukey$secret_key

    <?php 
    // Create the initialization vector for added security.
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
    
    // Encrypt $string
    $encrypted_string = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secret_key, $ukey, MCRYPT_MODE_CBC, $iv);
    
    // Decrypt $string
    $decrypted_string = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secret_key, $encrypted_string, MCRYPT_MODE_CBC, $iv);
    ?>
    
    <div align="center">
           <form method="get" id="contact_form" action="legal.php">
                     <p>Enter First Name</p>
                     <input type="text" name="fname" value="" />
                     <p>Enter Last Name</p>
                     <input type="text" name="lname" value="" />
                     <input type="hidden" name="uname" value="kim" /> <!-- uname could be dynamic here -->
                     <input type="hidden" name="upass" value="<?php echo $encrypted_string; ?>" /><br/>
                     <input type="submit" id="submit_btn" value="Submit" />
           </form>
    </div>
    

    在 legal.php 页面上:

    $uname = isset($_GET['uname'])?$_GET['uname']:'';
    $upass = isset($_GET['upass'])?$_GET['upass']:'';
    $con = mysqli_connect(" "," "," "," ");
    
    $result = mysqli_query($con,"SELECT * FROM `legals` WHERE `upass` = '$upass'");
    $row = mysqli_fetch_array($result);
    
       // else {echo "Username/Key Error";}
    mysqli_close($con);
    

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 2014-12-28
      • 1970-01-01
      • 2015-02-15
      • 2016-03-26
      • 2011-02-27
      • 2012-02-03
      • 1970-01-01
      • 2014-05-16
      相关资源
      最近更新 更多