11
\$\begingroup\$

On Github, there is a list of the 10,000 most common passwords. I've also generated my own list of random passwords.

Your job is to identify the difference between the two lists (with 100% accuracy).

Therefore, your program needs to accept a string, and return:

  1. A truthy value if the password is on the common passwords list
  2. A falsy value if the password is on the random passwords list
  3. Anything you'd like if the password isn't on either

For those that are interested, my program generates passwords between 5-10 characters in length, and each character is either a lowercase letter or a digit.

Note: You should not use these passwords in anything secure. My generation algorithm is not secure at all, and the results are posted online for all to see

\$\endgroup\$
  • 3
    \$\begingroup\$ You've put the tag regular-expression but this doesn't seem to be necessary for the challenge? Did you intend for it to be? \$\endgroup\$ – FryAmTheEggman Feb 17 '16 at 21:45
  • \$\begingroup\$ @FryAmTheEggman I'm assuming most answers are going to be regex, so I added it for those that are interested in such challenges. \$\endgroup\$ – Nathan Merrill Feb 17 '16 at 21:48
  • \$\begingroup\$ I'm slightly confused ... what's to prevent a short PowerShell like $args[0]-in(gc .\10k-passwords.txt)? Are we to come up with some sort of pattern that recognizes the one but not the other? \$\endgroup\$ – AdmBorkBork Feb 17 '16 at 21:49
  • 7
    \$\begingroup\$ @TimmyD if you use other files, then the byte count of those files are included in your score. \$\endgroup\$ – Nathan Merrill Feb 17 '16 at 21:50
6
\$\begingroup\$

CJam, 2262 908 620 512 503 bytes

0000000: 6c3a4c412c73277b2c39373e2b3a422d2c4c4c65752e3d65  l:LA,s'{,97>+:B-,LLeu.=e
0000018: 602c33653c5f333d5c5b513222011523a1d079937afebb7b  `,3e<_3=\[Q2"..#..y.z..{
0000030: 31a4ddf41a5e5038ef2aced9debeac5dc01fc4d27d809e0a  1....^P8.*.....]....}...
0000048: 2631e25b9e7d3314f1438f227b3235366233366242663d2f  &1.[.}3..C."{256b36bBf=/
0000060: 2b7d3a447e332205a4f76b4584be674d02001a36a250f949  +}:D~3"...kE..gM...6.P.I
0000078: 7bd0f1966deff2baab26a259813a0caa266155328064f0ee  {...m....&.Y.:..&aU2.d..
0000090: 20245dfab515c8faf39b08e80880c6e06c51728c57c153ec   $].............lQr.W.S.
00000a8: 9907a8365894bb8163bacd3a67173b50641c928f3ca87e89  ...6X...c..:g.;Pd...<.~.
00000c0: 81c1e95e5f049b61688fc7316e6a639876d00cdf4c01a100  ...^_..ah..1njc.v...L...
00000d8: 998bd12ccf3fb8ca61c89f5a57cedf8170b4b062653d947e  ...,.?..a..ZW...p..be=.~
00000f0: 9f6d5ba729db151b79151ae044cd6416274c73110e777172  .m[.)...y...D.d.'Ls..wqr
0000108: 22445132220133e9dcda9e224435224dc7621a0ae9224433  "DQ2".3...."D5"M.b..."D3
0000120: 220980cb1f885db429b742f47062cc1190767d82e6e956b7  ".....].).B.pb...v}...V.
0000138: 1de25dd9c2be7bf5224451322201c9167dd15a8c8cdd110f  ..]...{."DQ2"...}.Z.....
0000150: e956678cd6467ed95c22d7700c1d37a5b1ad94d3b3a3531e  .Vg..F~.\".p..7.......S.
0000168: 639ba99f27cde7e9c81c686adb874d6d5ac411d8d5e44363  c...'.....hj..MmZ.....Cc
0000180: deff8759ed48c97a32b5eeed5ef23be112773a0e0454e6a5  ...Y.H.z2...^.;..w:..T..
0000198: d064d43adf998c7050910c723616dccb5874a8b3640e39e0  .d.:...pP..r6...Xt..d.9.
00001b0: b7545841c7b3152d13ab3e83857530313cb737c799837a4b  .TXA...-..>..u01<.7...zK
00001c8: 396a39e68c9722443322d87648012832adde4e33e27615e2  9j9..."D3".vH.(2..N3.v..
00001e0: 4b6bf7e94bec9022445d3d7b4c5c23297d253a2b215e7c    Kk..K.."D]={L\#)}%:+!^|

This prints a positive integer for common passwords and zero for others.

Verification

$ xxd -c 24 -g 24 testall.cjam
0000000: 714e257b3a4c412c73277b2c39373e2b3a422d2c4c4c6575  qN%{:LA,s'{,97>+:B-,LLeu
0000018: 2e3d65602c33653c5f333d5c5b513222011523a1d079937a  .=e`,3e<_3=\[Q2"..#..y.z
0000030: febb7b31a4ddf41a5e5038ef2aced9debeac5dc01fc4d27d  ..{1....^P8.*.....]....}
0000048: 809e0a2631e25b9e7d3314f1438f227b3235366233366242  ...&1.[.}3..C."{256b36bB
0000060: 663d2f2b7d3a447e332205a4f76b4584be674d02001a36a2  f=/+}:D~3"...kE..gM...6.
0000078: 50f9497bd0f1966deff2baab26a259813a0caa2661553280  P.I{...m....&.Y.:..&aU2.
0000090: 64f0ee20245dfab515c8faf39b08e80880c6e06c51728c57  d.. $].............lQr.W
00000a8: c153ec9907a8365894bb8163bacd3a67173b50641c928f3c  .S....6X...c..:g.;Pd...<
00000c0: a87e8981c1e95e5f049b61688fc7316e6a639876d00cdf4c  .~....^_..ah..1njc.v...L
00000d8: 01a100998bd12ccf3fb8ca61c89f5a57cedf8170b4b06265  ......,.?..a..ZW...p..be
00000f0: 3d947e9f6d5ba729db151b79151ae044cd6416274c73110e  =.~.m[.)...y...D.d.'Ls..
0000108: 77717222445132220133e9dcda9e224435224dc7621a0ae9  wqr"DQ2".3...."D5"M.b...
0000120: 224433220980cb1f885db429b742f47062cc1190767d82e6  "D3".....].).B.pb...v}..
0000138: e956b71de25dd9c2be7bf5224451322201c9167dd15a8c8c  .V...]...{."DQ2"...}.Z..
0000150: dd110fe956678cd6467ed95c22d7700c1d37a5b1ad94d3b3  ....Vg..F~.\".p..7......
0000168: a3531e639ba99f27cde7e9c81c686adb874d6d5ac411d8d5  .S.c...'.....hj..MmZ....
0000180: e44363deff8759ed48c97a32b5eeed5ef23be112773a0e04  .Cc...Y.H.z2...^.;..w:..
0000198: 54e6a5d064d43adf998c7050910c723616dccb5874a8b364  T...d.:...pP..r6...Xt..d
00001b0: 0e39e0b7545841c7b3152d13ab3e83857530313cb737c799  .9..TXA...-..>..u01<.7..
00001c8: 837a4b396a39e68c9722443322d87648012832adde4e33e2  .zK9j9..."D3".vH.(2..N3.
00001e0: 7615e24b6bf7e94bec9022445d3d7b4c5c23297d253a2b21  v..Kk..K.."D]={L\#)}%:+!
00001f8: 5e7c7d2524656070                                  ^|}%$e`p
$ echo $LANG
en_US
$ cjam testall.cjam < 10k-common-passwords.txt
[[9989 1] [4 2] [2 3] [3 5] [2 7]]
$ cjam testall.cjam < generated_passwords.txt
[[1000 0]]
\$\endgroup\$
  • 1
    \$\begingroup\$ Whatever it is, I like it. +1 \$\endgroup\$ – Addison Crump Feb 18 '16 at 11:56
  • 1
    \$\begingroup\$ Would you mind explaining roughly what the thinking is behind this? \$\endgroup\$ – A Simmons Feb 18 '16 at 14:50
  • \$\begingroup\$ @ASimmons After filtering non-alphanumeric passwords, I'm counting the number of groups of letters or digits. If there are two or less, it's probably common; if there are three or more, it's probably random. That misclassifies over 300 passwords, which are hardcoded in the unprintable strings. I'll provide a detailed explanation once I'm satisfied with my score. \$\endgroup\$ – Dennis Feb 18 '16 at 14:55
3
\$\begingroup\$

Python, 719 664 bytes

import re
lambda s:re.search(r"(?!.*([xvonkj]0|p[9q5]|i2|q[4rt]|xk|m8|jp|jg|4k|2n|0b|y.[xj7]|mnw|c.3|7.2|4wu|061|zt[ub]|r6[d8]|o.0|jd[be]|j[wz]o|hk[cj]|^(wb|wd|v3|ub|s2|s1|pb|ml|j5|hv|h1|g8|g6|ft|f4|94|0t)|(we|ha|93|80)4|(xj|x5|03|qa|fz|w)9|3[65]0|zbx|(w.|v|o.?|54)7|[th]82|ssg|g(lc|ij|v|1[34]|bx|bk)|wvf|uax|mss|uhl|306|4.[mr]|9p|rob$))^.*((^([14]?\D+|\D*\d+|\d{3}\D{5}|(?=^\D*\d\D*$).{6}|\D+4\D+|[1-4a-eqwr]+)|sx|[ekru]s|t4u|zx|[avy]y|x[prs]|w[mp2]|uz|tp|tn|sc|qq|qj|p[mov]|r[deq]|oo|n[4tu]|me|k[23c]|jf|[2ag]t|ed|bq|a1|3r|5g)$|\W|123|^(nc|tr|w0|sa|rj|q[bnqu]|ni|mo|mw|le|kc|ib|hz|g9|f0|cb|b9|8d|7k|6u|5w|3m|1q)|z.g|bo|em|x35|t.d|p.o|p39|mar|ki4|id8|ebk|53x)",s)

I'm having a bit of trouble testing this in Retina, so here's Python for now. Test by giving the lambda a name and running it on the word lists:

>>> len([x for x in common if f(x)])
10000
>>> len([x for x in generated if f(x)])
0

It's a very large regex, so I'm taking a break from golfing it for a bit.

\$\endgroup\$
  • \$\begingroup\$ Compressing this might actually be better than switching to Retina, but I'm having trouble getting the compression working. \$\endgroup\$ – Sp3000 Feb 18 '16 at 8:43
2
\$\begingroup\$

Bash - 5324 bytes

gunzip -c rp.gz|grep $1|wc -l

where rp.gz is located at http://dl.tyzoid.com/rp.gz

This returns 1 if on the random list. This is falsy, as bash evalutes 0 as a truty value.

\$\endgroup\$
  • 2
    \$\begingroup\$ Rename rp.gz to a 1-byte filename to save 4 bytes... \$\endgroup\$ – Doorknob Feb 18 '16 at 1:51
  • 1
    \$\begingroup\$ @Doorknob: And save, what? .08%? Seems like a micro-optimization where the solution itself is clunky at best. \$\endgroup\$ – Tyzoid Feb 18 '16 at 3:21
  • \$\begingroup\$ xz seems better for this use case. Smaller command and higher compression ratio afaik. \$\endgroup\$ – Sebb Feb 18 '16 at 7:22
  • \$\begingroup\$ No need for separate gunzip and grep, also no need for wc: zgrep -c $1 rp.gz. Also micro-optimiztion, but xz compresses insignificantly better. By the way, wouldn't be better to use -x (--line-regexp) or -w (--word-regexp) to not match word fragments? \$\endgroup\$ – manatwork Feb 18 '16 at 9:50
  • \$\begingroup\$ Something like sort rpass.txt | 7z -si -mx=9 a r.gz should give you a shave off of about 480 bytes ... \$\endgroup\$ – Runium Feb 19 '16 at 1:19
1
\$\begingroup\$

Haskell, 8047 bytes

main=interact$show.flip notElem(words"viy130k57 d69z0 iz7q4d u26q3h 4mr6bhwa4 d36p5d 83554s 70r310py dz3js3 i1w86i0 2c4bk9 26w4kg52 u8i1g22ge 86k4br 875orut1 kw5786758 4k87v nfi5f2h9 x303978 43r4qb 963lnbs h5c1vq6s2 0iyv53vr2 nf5tmbp8 31ieq5xlh 9b450m ohv69d 5297m29 jvsxd20k fuha432 o8i84sh mss63 56vl8kzv8 73hh251 zr3r3zph 5f195v3kq 4o224g8 yi3y1lgi7 5ihcc t1krtr8w6 g7x9cuv4 128ov7 10adfe9 1p3lw 2523v xpj3h6z w2546kzx5 4042nle 0vv7i7ng xxzmf5vl efh601zby 19i0o63 8l20191 xm7e96pl 691p7m3p2 ksx29c2q3 auhli 7jq5e9e 786wo1q 1gwiaj7y8 3r19f26 x2nnr7 3u235s 076zr95m xzr32d 0lo70 v6o391 72pm08fo 79p1v9 uw98b 9mh7q3 2mh6bz a4qqw8d zve8z 790gkwc t975y 7d206t06 0zkvd9q0e y0cb34 9tltcs41w 079bp2y lwk12f 58gz4p 7lrkl io89he175 49dcu m2qg1 1ic76l kt9k9525i 6jwd8 4m9xwe86 3212janr r694ax 2raflx7s s26km575 n0z3hsdhj 9zl3x5 88c96968n 1lbw1v 20kri 799934a91 6c51846 61o78mjun 3d1yn 13113u8ev z22n5ni 0jxuc 79zwnl3tx xv4h4kz7 001n9 2u0f2 8msf6t g83r6v 81j4tt5e 20ucmaf j576783 v64ar 3u16pj83p r817zu6d xgc63 4y1rpo0 031606p 43q08m3x 1sg237d1n dt85c vg30a u4ge5t 4bv27l432 0612939 8glq6zo g64m0r4 593erv6 962a24u 94rop d28fs6k xy78efw3 yd0kyj1 y02rl 3n21q esg5y9m9 8408qpscw 5lapn9k26 4x1k27 7mb8054 4s1x7olv5 10s7726 00eib 84pu58e6 505l3s6 ldgx9e7d hv4d6u56s 5ren77w uf6pmf2 0sfum 1ik8mx vzqtj77 cvjc1ta us90844jb 84r0d4td plab52n 7946vj4l7 qy5gjtr 49lpq 4w49fm 44y0rh472 07jt8 1tju72 q0733u1 375ojd0 1t28s9ag1 ppj60t704 wi67b877 jgrrh388 ftvu98 h214l3x 3nirvrdu mrg14 52s65y 9f587 2629v os80p7 3h89mqk xt5845q9m 68h53w 8b3309g 16967k 38356nk 34oyt he3v5vn2 m1g2c8 8n324x6 2by0e7x 1a4mit7 ge91p60y b170o 9v5rys 6wq3959ue ed9u3 kd4wy1 c853gz k56gel09h 789ygx5pk 1f9f2 84fxtdx d02fdz9i 6gj4i4 6p8jtsax 3v38hkcs2 80090i 8084xb4m c4xv4x79 pilbux017 9m193zg5 qwq5o6x5 90cw69n96 n237351i cm40sj1x 3727d9p q0x74ityn 3ez6679 t7vs045 r7jg22xyr 3z34a96 miu8lm62 cpzjf226u vb2545x 4f9qg7sdq 2rf6t kq0ixi32n rjdeuj g8x5p3 d776c 4x1385 830nug s1tysl o679090 93kgz18 91pu8l n05i73 mdmq4c 31her5 6r10e0il i02np063 75jf619gg 1cft96o9 9j9x4g 12to97 5z6o922 2z1mtcg 3ea7l4 12h2gl0 bl12h638 k1sd9a4y v06po5yn 3ac6le459 0f1ljw ctkjzo4 u9k5rzx82 pa5d2om 32c4713q2 1bp33y 9384p7 v12i1aqp7 nb2w98 76ss0 24cy672 lasprob p1y3g4 ssekkgij 8x1o4 n1rgsm51d 2f73n9t 7gq430y 7lu476llc l8y3oa yjjb67d8 9n01v95gy w7792 061d339f xj989 v3tm27h rqytegr1c qoe96g o81680pg 563bmt680 s2lx9qc14 wpd4o1jb x67a06h83 ll508m 13067 m6578u vn64b 8zm25nd v0ny28346 nh5etpuub 6sl8acai 3hbd5 94103 981by1ri n4k4jzi m5704w7lt a6x3f 9chs9 ivk55n 14j50d 77p684h nt569aek br6yv97 iso7qi 7h1eh 0801fwq 54en7 8celizu j4c1i1409 9di5p1 to3re10m1 t1v246wkb 1n0l9r9 x46l2vwbp m4st1un7u 5apkz94 z9lp3i 3754cl r67up 446exk983 40n6454sf b6y1z1uf b8ca9w0je n9ga6 06156 3n551 71860lr sh9n3 zo6x54 5qwx9 6p2ko1d lzafd6a esv073963 871fu3 64wd2 68j49k4q 3s6b901 3k6x0 3br349yx2 2ev963aa op5t394ig jdbh9 sk364u8 u25m3s0r1 1050ln80w 322ggt12 7xq6z75 279q2 oxys3id7 c78v2 7jfjk1 8aq82y4b 0f43100 4afw4ck p88s6h0k azuaxn q128b 7y0ewmp ikpgn519d 54zq981 18chi4u 5xski3b ztb242 8199b0 886f7 lytj1 d52kr nv060 68tdhr01 0nky3o r9y6g fn24cg3 2i585fw0 c5oj4 d8220hbh rtjwom45 x8ws8 l0vk6945 140jsy6 cx70q6vc s26536 3un5314 koxd24tgw khpz47o 8h0wcv10m dc33280 14i9770 cnj67sv n142iu 3yysx7e6d k5g38u4 7vs103i5 21o1tmi bz7di 4u3m7y2m5 407z8ln9o 3dvz58 372fz3lhq lc8g15yp p9f6lq 5zaz5n5y f4j25y46 s369474nb 6qtfog8 x69wy42 ma2b56i34 e2tv3 jqp515 agbkd95 x3h7kqa0 v27rnd 14zo577s im809s n8pr1y3 o6w6u915z 4v1566be 1k8v4 ie2t65f yoci2 43f3741pr 1iihw59 99k77378o 081sgssg 8e472q 86ui90 9154298yg 03azelrv it3500 8p52k hc5tj my7ok34u9 4k2l9 svys9nx3s 6jc7b54 4wuhh ehkc19 7m242 1p5255e20 7uj997 8gsxl 4m4l4 u0057w 698u0vd8 1pbh99 g30zxku dvj20a7a uyt82 3nhy7i794 98aps9z f9zhx9i5 k686or3 2pc8fo086 f12p2r5y4 gg133 7d7moa92 6787230in ro8113t5 sk01s6ua y219c2679 4p2j48u tww6708 8g0ze8kxh ox2up4c06 acyflgv r2cf66p 51hgd6biq cepo0k5 3gkz3 so47e745 d1550k5 084h64t n5402i a2354hgu 1969f31xc 4ug5te 88av1 psaao7r r73zl z0dupumi 8o3ln n1k76r 3yj1i14 7ea10s8ny ek468v2 07sqhdn pc52r 3q01f1 dhku90f 1wqu1pitk 4xq2d se6v9du e99e82qt 0094y96 36cjds546 2ga756498 63w66053i 76pe39 5j9645gq ld8l156 m0bcb9hj 32kuy b751a8e25 02v61 j4zf5q6 80x964nyd 52ij7 u26vv r718r2d 09czm6116 1bd9a 12t874q5b 7i4ro i07mwc7g5 i4jug5y6 0srfbc0g9 l7j853e p0bcges6 46g56mn c6p6g38v7 5rr875 atpqnbl w177s30 e4pm1d117 y79mt10c 7xa2l69 nw7rrm4z8 36te6593 6r1x9z xai3b 4t6r0uz87 9m568v573 u40y29157 vvl2t4 f1kc0m wp56h1qkm 3xq8ivnr3 535i062 69m2kwb1 d4w2ze 1wjqh0 pb948 w9874d j5oo220d 28hro vx873f55x 5n2q70f 74358tngl 038048 662b16s i0psi7chi 3e98l80d5 hu7rwtl 3j7igy914 0v98t 9s17y8t 61g71jq6 375h1d icx59 plyp2n nm26m22c 3k2028 n13j9l9gh 1sy2a 76f4f glcn1 h3z12 0ctw14 ws2qr p97658 ann1oe63 67i2c5sp 5c6yu 894g7 kl8i8 kqlr6d 29w3z wk8qh26 62ma13brr ho08mctfw 65q3h2 8se1b7 970y4c577 c3f793 2mu9e od8vjhyt 17628 81pfy7 ee14q69t4 005r25c86 50w71m3l9 6se3p8l 9d9c5r7 hdq9rfb0b y29cf26 729xvd u4n91c 35u2q h16334 36xk98 ov1t6 54h6k9 ml63553 2c27tlqc fv1tv v767658 x1u10k 92q1j7b9 40e5is 6su1q59 h90636ll 757m459y0 ke163r6 qf5v8f2n m6h2a 4p88p yfmq2975a g4bv1t k8d8whp65 qz175so3 520g61e 55m6bh235 j6n5y 6w0t76th b0wtl7q lcuw96 mp2l8d1c w4kr923y1 d8741bp4v l245i3 fcmnw 9m4kg85z 6bis4cjs 1sf0g8gq uu36o4l0 a3h31u pvy4em 5q1t37g sb5cbsv3g yejeol og087z9 3d26hrlw7 05s7g2 4yp46v6 1sd3ot g04evj87 d1w1ra6 89g5t8 64a42ihm coh4kq 01ejx 4frus6 3k938303 0y0z1xyx 799v26 7651514aw 3ddi4i8l oc8aa 9u42f 70t17439 vg7o54 xw8c3yz 1i1aq3p23 k6i4j4 41et377k 9r25jic 65o4n1s zt8s9a8 4n88b7 or0974 96it6 ox041b kkk0hi 5ocny 316547 r873o h1z5mb wbw0497 6i422j 54d54bt reh822 r6818 dogwoi2n7 wvfur h51y36k 49d0lhf3m 73714y 3ukt0 45eeq s6686xxn 3395o i67mh66 68093462 4j9ls 74047i54o 1k6i5fawg p3m491 mqy94h6 666kf ue5ry g6g6xw 0bmgtx 75j9nsvf 90g583 hkjhib2 p9460431 a3wi5nd5 hgc0w7 9r1spo63z 87913e 6bz0fc m82jox78 q4c87t 8i6i51c83 ezp12r 6g5i7 ubarl 14k71597 901b2 kb2ya9 xkl93 awh7jmblw q2gbkmvk 91nw3a05i 6qga3 lcg5m 01wur23b 29t7171u cs9u8 a4v3xg0 j5kqpfciu u1o31 xjt16f5v 02165z3 17ow5 lqrq9 v9jt5 g8113 qa9637 ez29eqc9t 2a6ra1r 00767x y9pjem d8xw7s 2i5c5 kve255m7u 41v7yn8 o952s446 q26okdrbr f50xm5 a3l8v744 l8q977 ub2ag2 2307p 079pv6 n4wup 5b46t 0i599u7q t46j1ush8 03a6x c5idf535 566f3l8 r42t11p9 966e5412 82rl29tn9 k032o4 hlra31t2 87f8q8s 57u1vt5o8 g6081 pny7v101a g7ar1z zw697yh4 v96p1180 dg86uo9qh 0oo5r2n1 wse3c6 87qf041y hylxbrj yul0jc1 70394 3i44dn yoi246 7ccmsts0 2c2iqn qytx7c42w hgy3zx1k 0h76k267 vf528wz84 24i92r34t i15h1 0l2n93b 4ysso34 gb4p098p9 5x0p4pk5v la00fg39 2596p esno00 pfz9149 3tl43q0 p9mw947g xrd60n2g 5pcp2n 22vu57d1 169vqkf s6uwxk7 4cx1s 5z89490d8 u2o88803m f4236 94xpjzu 975gcg2b1 2s6ow85w0 r68w68 4valqzgs1 j967p577 wdz4t oy567kh05 v382yl ma0k273m 0qv13 3h79r 1a7286 xlv11nqg g64q2pq7f hh7bl2t65 8oqmq 3230i 9kspnz0 1o58m8 g3g8un0 9s70irfzh 4mqjge4 0pmjw 87jq5lvc 6rr41zav6 146v3 2pj9i leawe46 aojfx1h rbz7s7n0 aka0x 4q31u e069n swj06 l52s891 w7ta9p7 8641c3bj5 o8p3jx mci7g yb0mx95 jperua8 x1sh6whl q13u23s p9h3m 4u561 544u556g psm8vv 5338dmhe 6nmacyod 7qk0e0cx4 1s6zv2ycy 40360 2m3w8h2ee 110o27 w730108t 4547b0 0e998 d62io mjri4m90m 822xgu 7404u73i3 6g73d1 292uv351 789e6 f6721070g 5752261 y5l2i vh471uy 1p06933q o2l85722 axoz605ic yd97s 78whg y8eeb5b sr76mqe wc0855h6j 4ztui 4bc8n5 hvyuovxl4 0tifec 2coog5s6n j2mbd344h bgbx7 m7a4t2j77 vdc2d854 mizbxb2 1xj676 5oi49bw66 t451834gd 1xh7o t006va 6c0jy 126ly2n5 i432l5t61 myrou93w v0t5fi5s4 1zne2o rysfj8k 44x53c 9kk15 8938quif d6f7x 3nz3p cjg70t v309011 07nw947ey 6rc18 n11551so 24dtm5159 qpd4p40 f3794b9y9 8hcx5oo5 570bu cl442vxg l59bl10jx lj5gz00u b7tn6uu08 45m43uf53 t62861qf9 780288ew 3867o8p7 3k8uc we7zh sub593fof qxyi7 q634jlqz 9acjc 24v0eksmu ltx1crj 0y0b73qt 64c8yd 5hbes3 c791g97o2 tg9j2 8736l v2am0 4yq2yg943 193di7141 ss6xq y60lv92r 77b1v383 o9acsyje 163449n0 mnw167 2skcq u5z4v3i 4u70jc 8w872 42q9k44f fshyn004 qr1fa 59599zxbh g25wi69l 61vfy6 01474kb7 6mp11b 62t63e3l 198njo 673s491p ab8dr4qz 2s243 7hwz6lq79 d999oo3 6vsy1 6pf862 79x2dmq85 7q6q48i2 21g4mzy25 do85ib82x r0wb2 6zq2rmf 5q2jp41 bc60yv x18t30 5c0zt6m3 na80h6tc y5r6n o40r45v 0ufog 49w11ce0 10i3cbapw 606z0ti kowx5iro l59quc0 4t00o8")

This seems to be the best that I can figure out without breaking out compression algorithms, and none of the languages I like to use really have a brief built-in compression method.

The "algorithm" is extremely simple; check if it's in the list of random passwords and return False if it is and True if it isn't.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.