멋진 체스 게임은 어떻습니까?
코드 출현 2016 5일차
1 부
거꾸로 가는 것이 도움이 되었다
지금까지 MD5 해싱에 대해 잘 알고 있습니다.
MD5
테마 퍼즐이라고 생각합니다. 하지만 제가 틀릴 수도 있습니다기다림의 게임...다시
00000
와 일치하는지 확인합니다.자바스크립트 내 알고리즘:
let index = 0, password = "", doorID = 'abc'
while (password.length < 8) {
let hash = MD5(doorID + index).toString()
if (hash.slice(0,5) == '00000') {
password += hash[5]
}
index++
}
return password
이 작업은 시간이 걸릴 수 있습니다... 특히 경기가 연속으로 5
0
초이기 때문에 더욱 그렇습니다!...
매 반복마다 2017 해시를 생성해야 했던 14일차만큼 오래 걸리지 않았습니다!
그러나 여전히 실행하는 데 몇 분이 걸렸습니다.
고맙게도 내 도어 ID에 대한 정답을 생성했습니다!
2 부
멋진 트위스트와 더 긴 대기 게임
그러나 나는 처음에 지침의 이 부분을 설명하는 것을 무시했습니다.
Use only the first result for each position
이를 설명하기 위해 내 코드를 업데이트한 후:
password[hash[5]] = password[hash[5]] || hash[6]
내 알고리즘은 예제 도어 ID와 내 도어 ID에 대한 정답을 생성했습니다!
JavaScript에서 내 업데이트된 알고리즘:
let index = 0, doorID = 'abc'
let password = new Array(8).fill(null)
while (password.includes(null)) {
let hash = MD5(doorID + index).toString()
if (hash.slice(0,5) == '00000' && hash[5] < 8) {
password[hash[5]] = password[hash[5]] || hash[6]
}
index++
}
return password.join('')
해냈어!!
Reference
이 문제에 관하여(멋진 체스 게임은 어떻습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rmion/how-about-a-nice-game-of-chess-564f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)