Skip to content

Instantly share code, notes, and snippets.

View erikdubbelboer's full-sized avatar

Erik Dubbelboer erikdubbelboer

View GitHub Profile
@erikdubbelboer
erikdubbelboer / collisions.txt
Created October 25, 2019 18:37
Hash collision demos
# collision inputs taken from https://www.mscs.dal.ca/~selinger/md5collision/
# As you can see they produce the same MD5 hash
$ echo -n 'd131dd02c5e6eec4693d9a0698aff95c2fcab58712467eab4004583eb8fb7f8955ad340609f4b30283e488832571415a085125e8f7cdc99fd91dbdf280373c5bd8823e3156348f5bae6dacd436c919c6dd53e2b487da03fd02396306d248cda0e99f33420f577ee8ce54b67080a80d1ec69821bcb6a8839396f9652b6ff72a70' | xxd -r -p | md5
79054025255fb1a26e4bc422aef54eb4
$ echo -n 'd131dd02c5e6eec4693d9a0698aff95c2fcab50712467eab4004583eb8fb7f8955ad340609f4b30283e4888325f1415a085125e8f7cdc99fd91dbd7280373c5bd8823e3156348f5bae6dacd436c919c6dd53e23487da03fd02396306d248cda0e99f33420f577ee8ce54b67080280d1ec69821bcb6a8839396f965ab6ff72a70' | xxd -r -p | md5
79054025255fb1a26e4bc422aef54eb4
# Now add 01 to the end of both of them.
# The hash will be different from above but they will still produce a collision.
$ echo -n 'd131dd02c5e6eec4693d9a0698aff95c2fcab58712467eab4004583eb8fb7f8955ad340609f4b30283e488832571415a085125e8f7cdc99fd91dbdf2
100searchengines.com
20searchengines.com
21searchengines.com
22searchengines.com
23searchengines.com
24searchengines.com
25searchengines.com
26searchengines.com
27searchengines.com
28searchengines.com
@erikdubbelboer
erikdubbelboer / go.txt
Created October 11, 2019 09:31
libdill vs go concurrency
$ GOMAXPROCS=1 go run test.go
400: 200.371937ms (1285)
400: 200.557002ms (1998)
400: 201.016092ms (1993)
400: 201.548925ms (1993)
800: 201.371267ms (2340)
800: 201.489716ms (3996)
800: 205.647786ms (3998)
800: 212.762004ms (3459)
832: 223.881178ms (4000)
[A-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u
package main
import (
"fmt"
"net"
"sync/atomic"
"time"
)
func main() {
@erikdubbelboer
erikdubbelboer / test.go
Created September 24, 2019 14:14
Go timeouts with lots of ourstanding connections
This file has been truncated, but you can view the full file.
google.com,172.217.17.46
youtube.com,172.217.19.206
baidu.com,39.156.69.79
tmall.com,140.205.94.193
sohu.com,221.179.177.36
qq.com,111.161.64.40
facebook.com,157.240.201.35
taobao.com,140.205.220.96
login.tmall.com,47.246.48.233
wikipedia.org,91.198.174.192
package main
import (
"fmt"
"regexp"
"strings"
)
var (
matchBeforeCap = regexp.MustCompile("([a-z])([A-Z])")
package main
import (
"net"
"runtime"
"time"
)
func main() {
runtime.GOMAXPROCS(2)
package main
import (
"bytes"
"fmt"
"net"
"github.com/valyala/fasthttp"
)
package main
import (
"fmt"
"net"
"runtime"
"sync"
"sync/atomic"
"time"