Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
IronScripter Challenge June 28, 2019
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
}
}
}
}
@thedavecarroll

This comment has been minimized.

Copy link
Owner Author

commented Jun 30, 2019

For anyone that visits this Gist, please feel free to comment.

@camusicjunkie

This comment has been minimized.

Copy link

commented Jul 3, 2019

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.

@thedavecarroll

This comment has been minimized.

Copy link
Owner Author

commented Jul 3, 2019

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?

@jdhitsolutions

This comment has been minimized.

Copy link

commented Jul 5, 2019

Did you get a result? My solution is very similar - brute force looping and looking for a result that is meaningful.

@thedavecarroll

This comment has been minimized.

Copy link
Owner Author

commented Jul 5, 2019

Yes, I just failed to post the result in this gist. I'll update it in a few.

@camusicjunkie

This comment has been minimized.

Copy link

commented Jul 5, 2019

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.