Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.87 KB | None | 0 0
  1. (use message-digest md5 srfi-13)
  2. (define DOORID "uqwqemis")
  3.  
  4. (define (matching-hash idstr)
  5.   (let ((h (message-digest-string
  6.             (md5-primitive)
  7.             idstr)))
  8.     (if (and (string-every #\0 h 0 5)
  9.              (< (string->number (substring h 5 6) 16) 8))
  10.         (cons (string->number (substring h 5 6))
  11.               (string-ref h 6))
  12.         #f)))
  13.  
  14. (define (findpass id)
  15.   (let loop ((n 0)
  16.              (pass (make-string 8 #\g))
  17.              (cntr 8))
  18.     (if (= cntr 0)
  19.         pass
  20.         (let ((h (matching-hash
  21.                   (string-append id
  22.                                  (number->string n)))))
  23.           (if (and h (char=? (string-ref pass (car h)) #\g))
  24.               (loop (fx+ n 1) (and (string-set! pass (car h) (cdr h)) pass)
  25.                     (- cntr 1))
  26.               (loop (fx+ n 1) pass cntr))))))
  27.  
  28. (findpass DOORID)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement