2017-11-28 1 views
0

의 SHA256의 처음 두 바이트에 따라 문자열을 생성 같은, 0과 동일한 해시 :내가 같은 문자열 <code>s</code>이 동일한 문자열 0

0000afcbd546843.... 

그래서, username-password-가 고정되어 우리가 거기는 SHA256 그 조건을 만족 얻기 위해 random 부분을 제어 할 수있는 방법 랜덤 {random} 부분입니다 수 있습니다.

아래에 코드 bash 스크립트가 있지만 많은 시간을 실행했지만 조건을 충족하지 못합니다.

pt="0000" 
counter=10000000 
while [ $counter -le 20000000 ] 
do 
     echo $counter 
     fibyte=$(echo -n ""username-password-"$counter" | sha256sum | cut -c1-4) 
     if [ "$fibyte" == "$pt" ] 
     then 
       echo ""username-password-"$counter" 
       echo ======================================================= 
       break 
     fi 
     ((counter++)) 

done 
echo DONE 
+0

원칙적으로 제어하지 말아야합니다.하지만 sha와 원하는 문자열 앞에 붙이십니까? –

+0

죄송합니다, 귀하의 의견을받지 못했습니다! – user145621

+0

해시를 생성하고 처음 네 자리 숫자를 버리고 그 자리에 네 개의 0을 앞에 넣으십시오. – tripleee

답변

0

암호 해시의 중요하고 매우 중요한 특성은 입력으로부터 해싱 연산의 결과를 예측할 수 없다는 점입니다. 따라서 누군가 SHA256을 깨뜨리지 않으면 출력을 제어 할 수있는 방법이 없습니다.

귀하의 제약 조건을 충족시키는 출력을 얻을 때까지 다른 입력을 시도하는 것은 실제로 가능하지 않습니다. 현재 코드가 초당 10,000 회 시도를 생성 할 수 있다면 (실제로는 훨씬 적지 만 유머는 나에게), 1.767e68 초 동안 실행해야합니다. (Wolfram Alpha to the rescue 4.1e50 시간은 예상되는 우주의 나이입니다. 원하는 결과, 약간의 우주를 주거나 가져 가십시오.

+0

어쨌든, 당신이하려고하는 것처럼 보이는 것을 할 이유가 없습니다. 이것은 [XY 문제] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) 일 가능성이 큽니다. 이걸로 실제로 달성하기를 바라는 * 당신 *은 무엇입니까? – tripleee