-
-
Save thedavecarroll/74e370e243ba8847db0b05b329fe2e24 to your computer and use it in GitHub Desktop.
KeyInterval: 1,12 | |
Message: PracticePowerShellDaily | |
KeyInterval DecodedMessage | |
----------- -------------- | |
1,1 PkTr2sz2*cF-raz7GuD4w6U#gctK3E@Bt1aYQPic%705ZvAeW6jePRfpmI)Hy^LoowCnbJdOSi9Mber#)ieU*f2Z6MSh7VuD5a(hsv8el1oWZO7lpKyJlDz$-jI@tT23Raikq=F&wB6c%Hly | |
1,2 PTrsz*c-rz7uDw6#gtKE@t1YQic70ZveWjeRfmIHyLowCbJOS9Mer)iU*2ZMS7VD5(hv8l1WZ7lKylD$-I@T2RakqF&B6%Hy | |
1,3 Pr22*-r7G4w#gK3BtYQc%5ZeWePpmHyoonbOSMb#)U*Z6h7D5hselWZlpJl$-@t3Rkq&wc%y | |
1,4 P2scFz74wgcE@aYc%Zv6jfpHyowJd9M#)*fMSuDhsl1O7yJ$-tTaiF&c% | |
1,5 Psz-ruD#gE@YQ70eWRfHywCOSerU*MSD5v8WZKy$-T2kqB6y | |
1,6 Pz2azw6K3aY70W6pmLoJdbeU*Sha(l1lpz$T2q=c% | |
1,7 P2*7G#gBtc%eWpmooOS#)Z6D5ellp$-3R&wy | |
1,8 P*cuDtKYQZvRfLoOS)iMS(hWZlDT2F&y | |
1,9 PcF4wE@c%6jHyJd#)MShsO7$-aic% | |
1,10 PF-6Ut15ZfpwCbeZ6(hO7-jkqly | |
1,11 P-r#gYQeWHyOSU*D5WZ$-kqy | |
1,12 PracticePowerShellDaily | |
1,13 PazK370pmJdU*a(lpT2c% | |
1,14 Pz7E@ZvHy9MMSl1$-F& | |
1,15 P7GBteWoo#)D5lp3Ry | |
2,1 kT2s2*F-azGu4wU#ct3EBtaYPi%75ZAe6jPRpm)H^LownbdOi9be#)eUf26Mh7uDa(sveloWO7pKJlz$jItT3Rik=FwBc%ly | |
2,2 krs2c-a7u46#cKEB1YPc75ve6eRpIH^ownJOiMe#iUfZMhVDahve1WOlKJD$j@T3ak=&BcHy | |
2,3 k2zc-zG46gtEBaQc7ZA6efmH^oCJO9b#i*2Mhu5hvloOlyl$jt2akFwcH | |
2,4 ks2-au4#cEBYP75e6RpH^wnOie#UfMhDaveWOKJ$jT3k=Bcy | |
2,5 kz*a7wUKEaQ75WjpILoJObrUfS7ahlolKz-T3qFcH | |
2,6 k2c7u#cB1c7e6pIowOi#iZMDae1lK$j3a&By | |
2,7 k*Fu4t3YPZARpLoOi)eMh(sWOlzT3Fwy | |
2,8 kc-46EBc76eH^JO#iMhhvOl$jakcH | |
2,9 kFr6#ta5vfmwnbrZM(sOl-Ik=l | |
2,10 k-a#cYPe6H^OiUfDaWO$jk=y | |
2,11 krzcKi%eRoCe#S7e1lzakl | |
2,12 ka7KE75pIJOUfahlKT3cH | |
2,13 kzGEBZAH^9bMhlo$jFw | |
2,14 k7uB1e6ow#iDalK3ay | |
3,1 Trz2F-z7D4U#tK@BaYic05Aejefp)HLoCndO9Mr#eU2ZShuD(h8eoW7lyJz$I@23ikF&6cly | |
3,2 T22crzu4UgKEtaPc0Ze6PfIHLonJS9e#e*ZM7uah8lWOpyD$It3aqFBcl | |
3,3 Ts*-zuw#tEtYi7ZejRmHLwbO9e)U2M7D(vlW7Kl$ITRkFB%y | |
3,4 TzcaGw#K@aP7ZWep)LwJSb#U2SVaslWlyzjTRq&cl | |
3,5 T2F7D#tBac0ejp)oCO9#eZSD(eoly$I3i&6y | |
3,6 T*-uwtEYiZeRmLwO9)UM7(vW7l$TRFBy | |
3,7 Tcr4UEtc06PHLJS#eM7h8Op$Iaqcl | |
3,8 TFa6gtY5AfIwbb#ZS(vOp-@kFl | |
3,9 T-z#tYiejHLO9U2D(W7$IkFy | |
3,10 Tr7c3i7efone)SVeol$aql | |
3,11 TaGK@7Zp)JSU2aslyTRcl | |
3,12 TzuEtZeHL9eM7lW$IFB | |
3,13 T7DBaejoC#eD(ly3iy | |
4,1 r2*cazD4#g3E1aic5ZW6Rf)HoobJi9r#U*6MVu(helZOKyz$@tRa=F6cy | |
4,2 rsc-7u6#KE1Yc7veeRIHowJOMeiUZMVDhv1WlKD$@Tak&BHy | |
4,3 rzFauwgKBai7vWPpHLCJib)UZSuavlZlJzITaqwcy | |
4,4 r2-74#KBYc5eepHonOM#UZhDheWlJ$@3k&cy | |
4,5 r*ru6t@YcZWRILCOM)*MV(8Wll-TaF6y | |
4,6 rca4#E1c56RHoJi#UMVheOK$@a=cy | |
4,7 rFz6ctQ5ef)wJb)Zh(8OK-tk&l | |
4,8 r-7#KYceeHoOMUZDhWl$@k&y | |
4,9 rrGcEi0epobeiSueWl-a=l | |
4,10 rauKB7vpHJiUZavlJTacy | |
4,11 rzDE1ZWHo9rMVlZ$@F6 | |
4,12 r74BYeeon#UDhlJ3ky | |
5,1 2sF-GuU#3EaY%7AePR)HowdObeeU6MuDsvoWpKz$tTikwBly | |
5,2 2z-aDwcKtac7AWRpyLnJ9biU6SDa8lOllz@TiqBc | |
5,3 22r7w#3BQcZePpyobOb#*Z7DseZll$t3q&%y | |
5,4 2*auUtBY%Z6R)LnOb)fMu(eWpljTiFcy | |
5,5 2cz4gEacZ6fHoJ9#*MuhlOy$taFc | |
5,6 2F76ttP5WfHwdbiZ7(eOy-Tkwl | |
5,7 2-G#3Y%ePHoObU6DsWp$tkwy | |
5,8 2ruc@i5emoJeeSDeZljaFl | |
5,9 2aDKt7ApyJ9U6a8llTic | |
5,10 2z4EaZ6Ho9#MulO$tFc | |
5,11 27wBQePob#*Dsll3qy | |
6,1 szra4wtK1a%7eWfp^LbJMbeUMS5ael7lDztTkq6c | |
6,2 s2a76#EBPcveRp^oJOe#fZVDveOlD$T3=&Hy | |
6,3 s*zu#ttY7ZjRHLbOe)2MD(lWKlITkF%y | |
6,4 sc74cEYcv6pHwJM#fMDh1OJ$Ta&c | |
6,5 sFG6Kti56fywObeZV(lOJ-2kBl | |
6,6 s-u#EY7eRHwOeUMDvWK$TkBy | |
6,7 srDcBiZeIodeUS5eOlIa&l | |
6,8 sa4K17ep^JMUMaelDTkc | |
6,9 szwEYZjHw9)MDl7$TF% | |
6,10 s76BPeRoJ#fDvlD3=y | |
7,1 z2z7U#@BicAefpLodOr#2ZuD8e7lz$23F&ly | |
7,2 z*7ugt1Y0ZeRyLJOr)ZM5(1Wyl@TqFHy | |
7,3 zcG4tEQcA6mHCJb#2M5hoOl$2awc | |
7,4 zFu63tc5jf^wSbUZu(1Ol-3k6l | |
7,5 z-D#@Y0efHCOrUSD8Wy$2k6y | |
7,6 zr4ctive)oOe*Sae7l@awl | |
7,7 zawKa7WpLJbUSallzTqc | |
7,8 zz6EQZeHC9iM5ll$2FH | |
7,9 z7UBiefod#2D8lz3Fy | |
8,1 2*GuctaY5ZPR^LdO#)6Ma(oWJltT=Fly | |
8,2 2cu4KEPce6IHnJe#ZMahWOD$3aBc | |
8,3 2FD6Et%5efLwib*ZD(oOD-Rkcl | |
8,4 2-4#BY5epHnO#UhDeWJ$3kcy | |
8,5 2rwc1iAeHoSefS(elltaBl | |
8,6 2a6KY76poJeUha1l$T=c | |
8,7 2zUEPZPHn9eMalp$3Fl | |
8,8 27#BcepoO#ZDel$3&y | |
9,1 *cD43EicW6)HbJr#6M(hZOz$Ra6c | |
9,2 *F46@t75Pfow9bfZ5(WOz-ak%l | |
9,3 *-w#tYZemHbO)U7DlWl$Rk%y | |
9,4 *r6caieeyoie2SheplTa6l | |
9,5 *aUKQ7jpoJrU7aol-TFc | |
9,6 *z#EiZRHb9UM(lK$RFy | |
9,7 *7gB%emoS#6Dll-3wy | |
10,1 cFw6Bt05RfowMb2Za(ZO$-ikHl | |
10,2 c-6#1YveIHJOiUVD1WD$akHy | |
10,3 crUcYiWe^o9eZSseKl2acl | |
10,4 ca#KP7epwJ#UVaWljT&c | |
10,5 czgEcZfHJ9*Mhly$aF | |
10,6 c7cB7eIoi#MD1lj3By | |
11,1 F-U#aYAe)HdOeUuDoWz$ikly | |
11,2 Fr#cQi6eLoMe6Sveyl3a%l | |
11,3 FagKi7PpCJ)UuaZlITwc | |
11,4 FzcE%ZpHd9fMslJ$iF | |
11,5 F7tB0e)o9#SDolI36y | |
12,1 -rgcPijeoobeMS8eJlRaHl | |
12,2 -acKc7RpnJiUDaOl@TBc | |
12,3 -ztE7ZmHO92Mvll$kF | |
12,4 -7KB5eHoM#hDWl@3cy | |
13,1 ratK%7fpbJeU5a7ltT6c | |
13,2 rzKE0ZIHS9ZM8lD$qF | |
13,3 r73BZeyob#7DZlt3%y | |
14,1 az3E5Z)Hi96Melz$=F | |
14,2 a7EBve^oe#VDOlT3Hy | |
15,1 z7@BAeLor#uD7l23ly |
$crypto = @" | |
P k T r 2 s z 2 * c F - | |
r a z 7 G u D 4 w 6 U # | |
g c t K 3 E @ B t 1 a Y | |
Q P i c % 7 0 5 Z v A e | |
W 6 j e P R f p m I ) H | |
y ^ L o o w C n b J d O | |
S i 9 M b e r # ) i e U | |
* f 2 Z 6 M S h 7 V u D | |
5 a ( h s v 8 e l 1 o W | |
Z O 7 l p K y J l D z $ | |
- j I @ t T 2 3 R a i k | |
q = F & w B 6 c % H l y | |
"@ | |
function Get-CryptoSolution { | |
param( | |
$FullText, | |
$X, | |
$Y | |
) | |
$FullText = $FullText.Replace("`r`n",'').Replace(' ','') | |
$Counter = 0 | |
while ($Counter -lt $FullText.Length) { | |
$First = $Counter + $X - 1 | |
$Second = $First + $Y | |
try { | |
$Message += $FullText.Substring($First,1) | |
$Message += $FullText.Substring($Second,1) | |
$Counter = $Counter + $X + $Y | |
} | |
catch { break } | |
} | |
$Message | |
} | |
for ($x = 1; $x -le 20; $x++) { | |
for ($y = 1; $y -le 20; $y++) { | |
$DecodedMessage = Get-CryptoSolution -FullText $crypto -X $x -Y $y | |
if ($DecodedMessage.Length -gt ($X + $Y)) { | |
[PsCustomObject]@{ | |
KeyInterval = '{0},{1}' -f $x,$y | |
DecodedMessage = $DecodedMessage | |
} | |
} | |
} | |
} |
I really thought about making a function too but in the end just went with a script with a hard coded max value. Our solutions are very similar. This was definitely a tough one to get some clean code.
How did you know the max value?
Did you get a result? My solution is very similar - brute force looping and looking for a result that is meaningful.
Yes, I just failed to post the result in this gist. I'll update it in a few.
I really thought about making a function too but in the end just went with a script with a hard coded max value. Our solutions are very similar. This was definitely a tough one to get some clean code.
How did you know the max value?
I guessed tbh. I initially started with something much larger but once I saw the solution had 12 in the interval I changed the max to that.
I really thought about making a function too but in the end just went with a script with a hard coded max value. Our solutions are very similar. This was definitely a tough one to get some clean code.