2014-11-18 2 views
1

나는 이것에 대한 확실한 답을 찾기가 매우 어려워! ... 너희들은 도움이 될 수 있습니다 기대 해시에 소금 추가 및 URL 생성 ...?

나는이

<form action='test2.php?' name ='gen' method='post'> 
Text to hash <input type='text' name='pass'><br /> 
     <input type='submit' value='Go!'> 
</form> 

<?php 
$pass2=$_POST['pass']; 
$pass=md5($pass2); 
echo $pass; 
?> 

가 어떻게 텍스트 사용자 의지가 입력의 끝에 특정 소금 코드를 추가 할 다음 코드? 예를 들어, 사용자가 PETERPAN을 입력하면, LivesForever를 소금으로 입력하면 해시 코드가 반환됩니다.

그런 다음 입력 텍스트와 해시 코드를 모두 사용하여 URL을 생성하고 싶습니다. 이것은 단지 입력 상자 아래 div에 나타나야합니다.

그래서 URL은 내가 사투를 벌인거야

...

http://www.website.com/+USER_INPUT_VALUE+/randomfolder/+HASH_PRODUCED+

은 물론 생산 된 URL이 정확히 같지 않습니다하지만 당신은 아이디어를 얻을 ... 같을 것이다 이것에 대한 답변을 찾으십시오! 실제로 보안 해시를 수행하려는 경우

들 덕분에

+2

은 내가 먼저 당신이 그것을 사용하려는 것을 요청할 수 있습니다 :

<?php $pass2=$_POST['pass'] . 'LivesForever'; $pass=md5($pass2); echo $pass; ?> 

그런 다음 URL을 구축? 만약 암호 해시에 사용된다면 생성 된 해시를 사용자에게 결코 전달해서는 안됩니다 ... 해싱은 해싱 전에 문자열을 연결하여 수행 할 수 있습니다 :'md5 ($ pass2. '소금 소금 소금'); ' – RichardBernards

+2

두 번째 의견으로 ... md5는 정말 약한 해싱 알고리즘입니다 ... 나는 무차별 대다수가 30 자 문자열에 대해 시간 내에 강제로 설정할 수있는 설정을 보았습니다. – RichardBernards

+0

@RichardBernards 이것은 작은 프로젝트의 일부입니다. 작업 훈련을 위해 제공되었습니다 ... 나는 절대적으로 감사하고 귀하의 우려를 이해하고, 회신 시간을내어 주셔서 감사합니다 : – AdamH

답변

2

는 :

$random = 'dolly'; // specific salt 
$pass2 = $_POST['pass'] . $random; // add it to user input 

$pass = md5($pass2); // md5() both 

$url = 'http://www.website.com/'.$_POST['pass'].'/'.$random.'/'.$pass; // the url you need 

echo $pass.'<br>'.$url; 
+0

고마워,이 완벽하게 작동 :) – AdamH

+0

내가 페이지에 iframe의 소스에 URL을 전달하고 싶다면, 어떻게 내가 이걸 얻을 수 있을까? – AdamH

+0

OP가 무엇을 염두에두고 있는지는 흥미로울 것입니다. 그러나이 코드를 사용하면 URL에서 원래의 암호를 찾을 수 있습니다. – martinstoeckli

1

당신은, 그러나

$pass = md5($pass2 . $salt) 

같은 것을 수행하여 염을 할 수있는, password_hash 같은 기능이 더 적합합니다.

해시는 포괄적 인 보안 방법이 아닙니다. 유스 케이스에 따라 매우 안전하지 않을 수 있습니다. 해시를 사용하기 전에 잠재적 보안 벡터를 살펴 보는 것이 좋습니다. 당신이 설명하는 것과

+0

귀하의 의견을 잔뜩 고마워, 정말 고마워요 :) – AdamH

0

당신은 사용자 입력 문자열의 마지막에 소금 문자열을 연결할 수 있습니다.

$url = 'http://www.website.com/' . $_POST['pass'] . '/' . $randomfolder . '/' . $pass;