2013-04-26 2 views
-4

всякий раз, когда будет дано правильное имя пользователя, будет отображаться пароль, но проблема в том, что пароль находится в дешифрованном формате, а затем, когда я показываю пароль, зашифрованный пароль отображается ... означает, что пароль это «проход», а его зашифрованный формат «1a1dc91c907325c69271ddf0c944bc72», а затем второй раз его вставлять зашифрованный формат в поле для пароля. Тогда пароль становится неправильным .. как я могу его решить? .. Как расшифровать пароли в javascript ..как дешифровать пароль в 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

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. Записываем значение из index.php с использованием $ _POST и используя здесь

<?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

** Не храните пароли в текстовом формате **. Не используйте MD5. – SLaks

+0

Я не показываю пароль в тексте..у не понял, является ли пароль «проходом», а его зашифрованный формат «1a1dc91c907325c69271ddf0c944bc72», тогда 1a1dc91c907325c69271ddf0c944bc72 вставляет в качестве пароля в поле, обычно не отображающее символов .. но его не мой пароль ..my пароль «pass» .. он должен вставить «pass» в поле. не так –

+0

Что конкретно вопрос? –

ответ

0

Если вы используете MD5 ...

MD5 предположительно un-decryptable, поэтому единственный способ проверить через JS - это зашифровать ввод и проверить его против файла cookie, но вам нужно будет найти MD5, JS.

Попробуйте http://phpjs.org/functions/md5/

Я не буду вставлять его соз его DAMN долго;)

например

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"); 
    } 
} 

Однако я рекомендовал бы более безопасный алгоритм для хранения паролей, который имеет ключ/соль.

+0

скопируйте и вставьте код в php-файлы, а затем запустите их. Тогда вы прекрасно поймете, что я хочу сказать, что я пытаюсь сказать –

+1

Проблема в том, что вы не можете расшифровать MD5 ... так что вы пока он не был зашифрован. Нажмите здесь [MD5 Wikipedia] (https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDEQFjAA&url=http%3A%2F%2Fen.wikipedia.org % 2Fwiki% 2FMD5 & ei = DI16UYacO4rltQaY64DACA & usg = AFQjCNGko1yjJrNR1YsAMRWdPKeO1Rkb_Q & bvm = bv.45645796, d.Yms) – Dom

+0

спасибо всем, я нашел решение. Я использовал base64_encode и использовал функцию javascript decode_base64() для декодирования пароля ... –

Смежные вопросы