繁体   English   中英

如何在URL中显示加密密码

[英]How to show encrypted password in URL

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

我想我not passing $encrypted_string in url ,请检查我的PHP脚本,并让我知道How can i pass $encrypted_string in URL

每当我打电话给我的表格获取所有信息时,详细信息就如: actual passwordencrypted passworddecrypted password

例如:

原始的 upass: kimd

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

解密的麻烦: 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

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

首先, 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()

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

这里是你的答案,假设你可以得到$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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM