-4

正しいユーザー名が与えられるたびにパスワードが表示されますが、問題はパスワードが復号化された形式である場合、パスワードを表示しているときに暗号化されたパスワードが表示されていることです...パスワードが「パス」であり、その暗号化された形式が「 1a1dc91c907325c69271ddf0c944bc72" 次に、2 回目に暗号化された形式をパスワード ボックスに貼り付けます..次に、パスワードが間違っています..どうすれば解決できますか??javascript でパスワードを解読する方法を意味します..

//Index.php ページはここから始まります

  <form name="login" method="post" action="upload_file_enter.php">
   Username: <input type="text" id="name"name="username" onBlur="check()"><br>
   <?php if(!$_COOKIE['password']){?>
   Password: <input type="password" name="password"><br>
    <?php };?>
       <?php if(isset($_COOKIE['password'])){?>
   Password: <input type="password" id="pass" name="password" value=""><br>
    <?php };?>
   Remember Me: <input type="checkbox" name="rememberme" value="1"><br>
   <input type="submit" name="submit" value="Login!">
  </form>

<script type="text/javascript">

//この関数は、ユーザー名が正しいかどうかをチェックします

function check()
{
  var username=getCookie("username"); alert(username);
  var name=document.getElementById("name").value;alert(name);
  if(username==name)
  {
    document.getElementById("pass").value=getCookie("password"); //here pasting the 
// enter code here`password in the password field if the username is correct 
  }
}

//document.cookie から Cookie 値を取得する

function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
  {
  c_start = c_value.indexOf(c_name + "=");
  }
if (c_start == -1)
  {
  c_value = null;
  }
else
  {
  c_start = c_value.indexOf("=", c_start) + 1;
  var c_end = c_value.indexOf(";", c_start);
  if (c_end == -1)
  {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
</script>

//Index.php ページはここで終了

//upload_file_enter.php //ここで Cookie を設定します..$_POST を使用して index.php から値を取得し、ここで使用します

<?php
/* These are our valid username and passwords */
$user = 'king1';
$pass = 'pass';

if(isset($_POST['username']) && isset($_POST['password'])) {

    if (($_POST['username'] == $user) && ($_POST['password'] == $pass)) {    

        if (isset($_POST['rememberme'])) {//echo"asda";exit;
            /* Set cookie to last 1 year */
            setcookie('username', $_POST['username'], time()+60*60*24*365, '/');
            setcookie('password', md5($_POST['password'])/*here encoded*/, time()+60*60*24*365, '/');

        } else {
            /* Cookie expires when browser closes */
            setcookie('username', $_POST['username'], false, '/');
            setcookie('password', md5($_POST['password'])/*here encoded*/, false, '/');
        }

        echo $p='showing some another page here';

    } else {
        echo 'Username/Password Invalid';
    }

} else {
    echo 'You must supply a username and password.';
}
?>
4

2 に答える 2

0

MD5 の使用に固執する場合は...

MD5 はおそらくun-decryptable.

これを試してくださいhttp://phpjs.org/functions/md5/

くそ長いので貼り付けません;)

例えば

function md5(string){

    //make string to md5

}

function check(){
    var username=getCookie("username"); alert(username);
    var name=document.getElementById("name").value; alert(name);
    if(username==md5(name))
    {
        document.getElementById("pass").value=getCookie("password"); 
    }
}

ただし、キー/ソルトを持つパスワードを保存するためのより安全なアルゴリズムをお勧めします。

于 2013-04-26T14:07:15.617 に答える