Posted to tcl by rmax at Fri Aug 04 12:37:17 GMT 2017view pretty
package require Tk
package require sha1
package require http
package require tls
set URL https://haveibeenpwned.com/api/v2/pwnedpassword/
http::register https 443 ::tls::socket
http::config -useragent "Tcl/Tk pwned password checker"
entry .in -font fixed -textvariable in -show *
label .out -width 40 -height 3
pack .in .out -fill x
proc pwned {pass} {
.out configure -bg grey -text "processing ..."
set tok [http::geturl $::URL/[::sha1::sha1 $pass]]
switch -- [http::ncode $tok] {
200 { .out configure -bg red -text "You haven been pwned! :(" }
404 {
.out configure -bg green \
-text "Your password is not in the database! :)"
}
default { .out configure -text [http::code $tok] }
}
http::cleanup $tok
set ::in ""
}
bind .in <Control-BackSpace> {
set in ""
}
bind .in <Return> {
pwned $in
set in ""
}