Sign in to follow this  
Followers 0
czardas

The Big Rip

17 posts in this topic

#1 ·  Posted (edited)

The Big Rip is the name given to a theory in physics where the expansion of the universe accelerates to the point where even atoms get ripped apart. The first signs of the big rip will be when stars start to disappear from the night sky.

Believe me you will be waiting around longer than the end of the universe if you try to randomly brute force even quite a short big rip encoded message. It works using the simplest possible method of all - namely the barrel lock. While most barrel locks are one dimensional, this one is three dimensional.
Is this an encryption program?

It was iintended as a coding exercise more than anything else. It fails as a universal encryption program because this version only works on multiline text documents written in AscII which contain the full delimiter string @CRLF. The text does not need to be arranged in a square. Anyone thinking of trying a 'meet in the middle attack' should look at what happens when you try to encode a message where all bits are set. It simply doesn't work. Is this a weakness? Well you decide.

There are no instructions and all the controls are hidden (I want you to try and figure it out). Just something to put off a would-be hacker who happens to find your lost portable storage device. It might buy you a bit of extra time to cancel your credit card pin.

the_big_rip.jpg

Thanks to Guiness for help with the muliline password control. That's one unique feature you don't see every day. ;)

LINK REMOVED

Thanks for looking.

Edited by czardas
1 person likes this

Share this post


Link to post
Share on other sites



When the big rip comes us autoitters will save'eth the day!! May the 'farce' be with you:)


[u]My dream is to have a dream...[/u]

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

When I was 11 years old I set a challenge to my teacher. I created a sequence of numbers some of which were missing. To my amazement my teacher had filled in the missing numbers before hometime. I was gobsmacked! It was a good lesson, but I'm going to stick my neck out once more. I could end up eating humble pie, but we'll see.

The first person to provide the correct plain text and password to the encoded message in the previous post gets a financial reward. £50 (UK) is currently on offer and the challenge lasts until the end of 2012. I know it's not much, however if after midnight GMT on 31 Dec 2012 nobody has come up with the solution, I will consider renewing the challenge.

If a wrong but plausible solution is discovered, it may be necessary for me to reveal the real solution to resolve the matter, at which point the challenge will be withdrawn.

The password should be either a sequence of characters or an array of numbers. I know there are people out there who crave challenges like this. Crack the big rip challenge, if you can.

@ac1dm4n You never know, there's a lot of talent out there!

Edited by czardas

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

#include <String.au3>
#include <Crypt.au3>
$str = "0x,1C,CF,19,C5,96,69,92,60,3C,1F,9E,44,69,12,DE,8C,0C,F7,13,E1"
$Split = StringSplit($str, ",")
$str2 = "0x1CCF19C5966992603C1F9E446912DE8C0CF713E1"
Local $SHA_1
$Hex = BinaryToString($str, 1)
$Hex1 = Hex($str, 2)
MsgBox(64, "", $Hex)
MsgBox(64, "", $Hex1)
$bEncrypted = _Crypt_DecryptData($Str2, $Str2, $SHA_1)
$TEST = _HexToString($bEncrypted)
$badboy = Binary($Test)
$badboy1 = BinaryToString($badboy)
MsgBox(64, "", $badboy1)
Local $aStringsToEncrypt[1] = [$badboy1]
Local $sOutput = ""
Local $hKey = _Crypt_DeriveKey("CryptPassword", $CALG_Sha1)
MsgBox(4096, "Encrypted data", $Hkey)
_Crypt_DestroyKey($hKey)

$Answer = _HexToString($Hkey)
MsgBox(64, "", $Answer)
$x = Asc ($Answer)
MsgBox(4096, "StringIsASCII returns:", $x)
; and the Ascii Representation for 48 is 0 there are other methods to get the same Value
#cs
Here's the string to be decoded the decoding happends above
8398CC22481594391D66A715898B59B30A2E42CCD37EA03239B434B1748DB9D33950B2DB38B640C348613B80C26786
43305CCB0D2EB1D1691A00D2F030BCE2681315616B543909933690B2EE5A572A78D7DCE13E99D19782C6AD5CA602BEE666219B9C058488E2210B9779C199B31CADDC6763732D2C4F196632E9B986C032CD6B
664852B8146B1B6949999B7CC0480BBC578EA162BC49190B111120E5931B4C59DC519E0D646A38C1723D806D
861C5C60D9991CEC29C4CB1A31759A14B5AD8C53B326E1863A9CD035853DA590E9BCE45E2ED5AB2716C16596BA12B126D9134328BE80DB8415964B0C81918641D9D3093379883E49852629118293D3A765AB
1EEC3658648D83BE991CAAD78A1B58E8B08DA09C2B4B08DB5D031858419C6589C6EB8B1CF85250
FEBD9CD2C0368624723F2F86B666A19AF03302C23030970E266BC37912BD5431B2DD3C8B66316BD3B5B608D48A34FBDD4428C76A5F2D1CE19F50C0CB28EBA23E2170BE9A6B114C43661A5CD1FEAA1713C895
A3813B6D2A3DA2EFDC8AC1D36D01983CEAD045C4B94F4DCB689B0B50C361BEE2C5B71039BC147ADD0915BEA61D44CBDB4B043E2065AEE5B2B31498803238132B81C819D2EC813D19D08D14BCCCD2C76C4EC566CE38
0010220598156C2831A3085950733EA6151268D0461235DCD16F436EEEC33835803A9944033310633ADBD34C879E2C2F12C2BB7EBD6354395A60A0DD4E8C1D4B5CACCD1CA0D192719B66BD9A34EC4B59731E3C1E3A
E6C9D1AE98558D0B1B167C0644266B03481902636C57623AB06BCB9A5BA6BC8D96B06EA2BD89A5DCD09E
5ECC885BDD86319CC8F5D011D0603B5C0167BF9112E323B18910332E456CC99698B32CCDC812B588916CC0
8A64BCE5B740BBBAB858BB2CB4E636DD2CA19B8315BB28A47176698653A994E5B89CECAEC8D0081A31FF8994
4BED4EB36404688313350E02B18DB3327AD93CC42B3012DCA5A5A61D6CAC2D8B13ADDE84423B6F4AF047
1C2AD039CBE03DA0EEA6C164ACD471646E4C8D846F2C3B95666DA95471003341A94A9C
6C73B3FCB273BC6C4750DA4A9C2B943D6D9980328597823086531C00C84C8954C056B85DE8DC59651F591E
E4E67BB9C38A9684680C6ED576A4A479BE6910333B2A52DAC67B5AC0CB1B56007337284953B2436C36
31BCC19DC8D9AB5E2F2968D39C22B91C8EE2A30B2A54836C74C4DCA2CC123F05A60CA0E4
052A346EA575BE8A3FB530BA062D2E55770AD7570149DDBE4C2921BC82B5635C2C434369CE
4F681C15A5D4631BD8DCB2B4C560F36A517444709583B70B5A4B53499B473B1C1CA2
DC0D260039D08C01A1A169930345688CA42CE9CA06E3C0F33B3A8C665365A3D83EA0E11D63791E24C57EB0D1D0
3ADB15BC29EB8CD681CD30E43D9AF8D99C466DA4AA518CC2B09C9B25BA1338349A
2038D705E250333468E9DB989C00C80EE0B8D2135E9E
2929D9D19D766B058CEC01
FACA181732E618190932CD8F2B9CE642603582CC82BB228A88C190626B90
CA5D1A54E8B04E87B85DA6B22CA697499E9D53B9CD6EACCDD1140EB4091137B001A90D035A10B8D997B4B2C30D
49630442366618BACCC32E8C31903C5C16D8D4331C4B6003
A5386B4B3C1058A64932CB9A875D789648C835385F403CD27E040C683CA4637CDB9C219820CCA10AD6534A129B0D09BCE3286B982D8D130290CEB18850B34C41761EDF3910695B23181B991C818AC307DC0C
0465A42C5118133F6909116B6D1B1D59BE02226CB6C56B3DC585A03D1D62C8090DA509958B40B865BA5199E84AC739A28BA4BD18923CC65F418844DFA60CEA51CBB0360E61D2BB523723C897A3A1F4CD830854
A60A96C585A8ED09936B9465B31E289C068991B63BCB3C658B4AD7B6CCC60C1B89DD5EA0F7A95992C3B896CE446363DB5DDD0B88124B1EE19C9ED373EAC81610903A52D6E1BECC8D77BEAC283164E08CAA
B99EF01491A6AE286B212B923CD030B374972A28376AD384B640FD433EC99B94AAE878DC8856C09C58C0F3F59B14BCA8709A9F01A572C369B81E40A5AB967B02B5
9381BB2C62B420C95CA6F4892D25A7B4CED8FCC7BA1D6A447A5B2A56C3063C4AC63F1AB9A85028542F908622BCA0D9
4BE819BC6B7DCE081D3B7D285C3EB8DB13699808CC54A2B19918C812B0EA42D4
748EAC728D92B3126C4598002C2139836C5B9370BDC6F5983956C63EBD9C5B2D603DA6C072BC031C591CC9
B3EA6A3C83292A041CC58334C03570957B4FB8936C333F8CEADCCB5C6AD09C0118833C8166
BD193ECF13D1C64EB904B4C2C8593998C5A5C3A9978E20F42C73930F5A1B799F5664BE3F492A989320BCC4A6
086C803C5598E0DC3E4C0A1FD9552215ADA8C5923C1D62338E0962389B00CBAC9B780F392D
8776A5ADD23B0ECDA95239EC126E85E342BE80360A9311B892
B161359536401FC5DB23D1991E9862656A56B381C40121DC6EEF0E533310318D25BCAC8A953D68006BCB7A20C132
B489923F82C5B6CB2230B2FC29BCC2BCDC0C6E2A1BE08E8D46D34F68F2E63C20C33EDC013C28CE22886DC812D3
606C0D8C946C82BB0B6D244A1EC122BB3089585C08CB238310603C4C8600CAFF1CC8D8BC81C0AC14B9A61339
A7403720DC1C0D8642EE37150CEE167098C8DE4403383581E0B65173BD2AC07754C675BE2D503BC39FD3524F6B40CA
C909D7536332EA88C09EF677123994A9C508E98C9ECCE16953BC82378C2E46832BC91FD6640C8C5680C190BC85
B62EE64C0DC8346E8978BC02B1A433180242290561681646AB19AA9AEC8067B5A11063282E2B31218EC36AD919B5
AC620EDCD93B3C612103BA5377DD25318346995C1B06281426AB381C0A1D847E20395D8FCDE375798B83342906EC
E58D9B961B098348391E360B059E133F40A31C8B4D4EE233603D91983C905CBE059D509C21966CE03480E9881C07D5
AE606196C235A91104B393323C13872856054A503B766C8A5B1DDC82DA14E9184B1A985D0B488F99
9B672B2D748CE198DB5F5118C6385D5164C1B0633CC36E2CB1CC5484B3
BB4B1CD1BA6F723CCA18908A5634DE065E9C9A3B0E8614E1BA1B98210CAD62C8830CA0B3163196B52194999B
4A54B841B21CA8E92CA31B30C4672675B8DD
8B968435BA6A9CCA2C
CCB43ACB2D1B74246B129E5881B7713CE85B56562ED64F2718A91DDC30C6581DAEE1BF63664DBB5CC49588EF0B4C54094A52B19C0D8C222B711EAC09DBB11CD1398CC032440B821956395A3CD39B4B9A0B0640C8
9300146EC3723C2D131990E1358803E3EC1D9F55BDEC766AB0C466BA29809038D064CD141CACAADCCB31BB60D95031FA4EC23B363308B99C1431961D25A8C59D866EA4E59323BE4675A11DD1B26058167BB98D65B38B
8D865CDD4905E2DB11B370316180B4EDCDA3B855C7C34B2B258322C2B61C862E210E581D88C78BDB18EDBBDC89D48363A99A5ECB1BD0D95C248094E123A6F8C618C2B858D8E4BC2C086D340D64B16F6192D233A8CF
B6B0C6FCC153AD65D7BDD1B337642C296B146953C8B60EF582B2E99DC5ECD264058ED2E5899ACAC35183
B23C6E78B8EC09B470D977398CD5EC099633501D9B3AB30C823E00C91D86C0FFA1F806830B16BB
5C2DFDC526643EC62E5B32B0C395A86116A6EB26D800BA14681B23291C537F45F813685C8C05
623FA893FB5B0271B853B338585D919D0C646238C065BC2191B5BD407AC91A4C0D2D048B3F3065F8
18A1AE16D0B30663723918102DA6CF65C0F58CA6D48C458990BDC76D93BA92B766395663618485C3
195516189565F5B059958B61316997BC098C222D555673812C64AB08CE3694A25DAB389ADF4245291F
08D4B896099C8B090AD89E8B090CD15C05A99AF38B14AAD6F2803B5C10C5BF4417703DC62C372E8D
18C4B34ACD36B1961C04330B6E933D86B03670BC896A30695B1A3402ECE698FE9B5E8AF57CCF
6D42C1C412CEDB4CCB803D0661389D42036AE2607118C19FA5560303959B68BB35CA3DAE1C4C
48E5932E80A632D2D0C4428D1CAD656F530A10C332BC4E529017348A58695C0B91F4443502D91B4810
3C8661A4C1959308E91632311919B5C14992ED02B5985EDF503A
466E416ECC6E660235B2B46AD5DB547F89BCB93C5C543A3C8765886958D7623CD81B0FA30C84F4279D
CD1CD8118BBB5162AEDB232C860CAD4030C8335239731838166634E99EC8CC2A9C4E52BEA1C8AC699B
26BC53B0CA9D1BE6011A132AC2DB532959CD95A31816DCAAD4246B633B5A547B4D9754B2B86B5CD8D90BB4AD93687CE138558996481C1E2F915BD426B5BC0CC5B3BBD722312D6D6A3C5B30E902392A10B38C4D3CAD9A903B
6CCF6A1035E8DC6EA1EB713E04B604B891B604B313B9BA368234CDB973173BA630486B6AD231294C6635ACAF4CA2C141323D8EC18CA58952386E667941D3C4F9363489803A12DE38416A3232CC899D073B5D0C0C
08CBD1848C428B290EEAC694C8D53D5D843DC44DE0CF6FA810CB707C6F85776EE8BB9F67ACA9D443581325B8981D00DB0980347E3DEC8708ECE954AB0D3C69818A333927D431D7D8BE6AE95F6948D6413B9C
C2481166381C4F0DE6263D9308B61020BC86C4670F8462B128943B022C16F8C76B38CAFC1C5440653608C896B8E2653D34AC8DB1C8
C8A05EECEC689E36C03E1D4282630B5A5B133D4FEB1F02D9D8A62D961E8A45CCA71E7D206AAEC391CE34B856247B19746D96C62B15943E7FCE62AEA405734CED424918C48F784855A19163AD1806BA
9C2B61CB2BD1664470B5935619D91126189D46
822B0562CDB82C069E598D2993306913433D6BDCCEA909999343519B4C335C2283618D823D058B5ECB2C5F0ACD64
958CE43A55D6BDA1AA89DC21FD6AC2B9F2D91D05A64CCD46E186C314895B01BAB4B4BF5B003D427CA8C4
3B106D4E53AA148EFB1FE6B0C34B0ADCC1E149585D776B2595AC49D8C8DD4530E6F85C1B3CF1BD616CE7A470
B19E7C20B9030910D581656238E810C248FA02CD067A1988B3268666491D995933A54EC869C34C811A1E19BA186D
C0BD110A0A34E8BC3CA4FB5EA323C85276664032C4A30E691CA369DD8AC2C237B2FB095B2C686B77991DE431583ACA
9FD6956B16AFA110B95B93BAF649556C089CA24794FB1C018F8A4D830816E1A841397E219EA14060BD8D28194236D21584C6B6
5C4B8709DA3C1E6D9B43985E1B7C219FD3E9D44C093ABDA9516F5BA961D9830349DA9D40A5A56D7134E468B5C9A1E0
197270C4DB5A0C8AC403E2B061EF1791D810
C6B3B613623A18991DE6
FE819AC9AFC6060CD9C391B48965C03910316738D783649604ABDE9582199C69898ADE918B1C967581B4
8D0722691097937A6A65BB26C0161E870D2B0F5ADD02C68A195A7D
381C0B5D6B496B9D9D4B4B5ACA5C81
F5A64B9168C8170EC3395988C53CAE0C241C0528BD6E658844B36E0131A5A65D636B256D51AB42AAB2
229D0763B1691B63B648DFC022F95A9C62C46CFCC99EE5EB46CACB5583419C01323ECC0BE060C8
6D38D8C1FFEE164B0CBDE306B3242DBCC2C91CA2D5D37EA4933AC0D2CC483C4C2C2C7B49281AC3803C00C0
3A5BBD8844698E8B509EC7BC00DBD01C023CA2758DEF323319B8D0B6BB031331BD
495EE987B8CDDAE95310CCCCC62C8E0E6711B310BB2AED9D1777A0B5E85A9B4168AF2685896816461535A919DCEB2E48E16A3CEF3F181D27231260BAD3A36D02CD46E23AE4332A1163B1B0D06136581DACE508DC24E9
1E8DB98165D2666B10B4CE1819970EBD15B0CC5C4B891D81C4238AD60D0CCEA773616A5BD36239161C1234630858D300BE20B7B07D86391191C6E6BB8C679BD95EA205BCE8F49B384862
B14C046418533AEBC33309533B66A92C41991513205C690A95C9172DC0D3763C80322436B33A90B3609DE23616948CB311A3B322B5687C6957E30DC4A039C48CAC6AE3903331B760DC88EED2077DE079D36B
1182B03185F3381CCA30C164B2B85EA0BEC138DCE124CD51C1DECCE62B5F2862867CA2C5385286BFE4DD22D07E8944FA7A7C8CE5916C8731976D8D0898CBB39B348A1AD000DB0999B06C9C8C23C0D2E80C89CB9C01A59E
392DE2DB30F643BC68
DF0D8B5AC4C93A4500CCDC4F3B985C8CC6DC918B42371166B640D23E0C8461BD6852BBC3A3171856
2922C2E89B170362B4A24A41BEE567A435AC65A5DAD18915CC676B960D03B95D22C6434B28D8947DA5
69DE06D959BCA1966C24CE8C20193C4B74BD20358621BBD25968196B685726CB659402CE6821BCA6916B0E8E89C3
0DCC226B9F48459723005D13133C02688B0C1C663965B1BB0779DCDB62AF5C0613285CA6E1946C0AB9119CCDEB01
6BD383CC28D42E2CA8991469048312B8DD873F48DC8C3D81932DAA8BDD60D7703D918FBCD918BD051C49EE009E60
C5B996D9DE1E
02D5CD88C9905B91B50327923C5939DB363C86FC215031C164AD510E1C28CA1E60BE136311D441B18959
0427D3A18DAD05FAD34A503CD69ACE1316C5D0631E06206D95DC4467B36259D4C99739713ACB59D6E8
#CE

I hashed the file using sha1 method

Edited by ac1dm4n

[u]My dream is to have a dream...[/u]

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

@ac1dm4n You're not supposed to respond to this thread. ;) Thanks for confirming the hash of the text file for me anyway. You will notice that the forum code boxes are formatting the cyphertext and corrupting the message, so what you have posted is no longer correct. This is why I decided to zip the file up and attach it to post No3.

Only joking about not responding BTW. Questions about the program will be answered. Questions about the plaintext to the challenge will be ignored.

Edited by czardas

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Thanks to those who downloaded this.

Question

How long did it take you to figure out the controls?

Do you think they are obvious or not?

I have to keep reminding myself that no responce is a good sign.

;)

Edited by czardas

Share this post


Link to post
Share on other sites

hehehehe


[u]My dream is to have a dream...[/u]

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

The strange thing about this program is that it sometimes flickers either blue or red. I don't know why it does that (although it doesn't bother me too much), but why blue and red? Is it something to do with blue shift and red shift? ;)

Anyone knows why it does that, please let me know (or any way to fix it).

Edited by czardas

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

I have a sneaky suspicion that the solution to my previous question was to use $WS_EX_COMPOSITED style for the GUI. Does it still flicker? (required resources are in the zip file - 1st post)

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <GuiEdit.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <file.au3>
#include '3Dv2.1.au3'

Main()

Func Main()
    FileInstall(".resourcesNGC 6791.jpg", @ScriptDir & "~NGC 6791.jpg")
    FileSetAttrib(@ScriptDir & "~NGC 6791.jpg", "+H")
    Local $hGUI = GUICreate("The Big Rip",320, 165, Default, Default, BitOR($GUI_SS_DEFAULT_GUI, $WS_EX_COMPOSITED), BitOR($WS_EX_ACCEPTFILES, $WS_EX_TOPMOST))
    GuiSetIcon(@ScriptDir & "resourcestbr.ico", 0)
    GUISetBkColor($hGUI, 0x000000)

    Local $idPic = GUICtrlCreatePic ("~NGC 6791.jpg", 0, 0, 320, 165)
    GuiCtrlSetState($idPic,$GUI_DISABLE)

    Local $aControlID[8], $dEditStyles = _
    BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_MULTILINE, $ES_WANTRETURN)

    $aControlID[0] = GUICtrlCreateInput ( "", 10, 3, 300, 19, -1, $WS_EX_TRANSPARENT)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    $aControlID[1] = GUICtrlCreateEdit("", 10, 22, 300, 57, $dEditStyles, $WS_EX_TRANSPARENT)
    GUICtrlSetLimit(-1, 260)
    _DisplayPassChar($hGUI, $aControlID[1])
    $aControlID[2] = GUICtrlCreateEdit("", 10, 82, 300, 57, $dEditStyles, $WS_EX_TRANSPARENT)
    GUICtrlSetLimit(-1, 260)
    _DisplayPassChar($hGUI, $aControlID[2])
    $aControlID[3] = GUICtrlCreateLabel("Encode", 1, 140, 106, 23, $SS_CENTER)
    $aControlID[4] = GUICtrlCreateLabel("Decode", 107, 140, 106, 23, $SS_CENTER)
    $aControlID[5] = GUICtrlCreateLabel("Abort", 213, 140, 106, 23, $SS_CENTER)
    _CtrlInitState($aControlID)

    $aControlID[6] = GUICtrlCreateDummy()
    $aControlID[7] = GUICtrlCreateDummy()
    Local $AccelKeys[2][2] = [["^a", $aControlID[6]],[@TAB, $aControlID[7]]]
    GUISetAccelerators($AccelKeys)

    Local $abShowFlag[6] = [False, False, False, False, False, False], $bInRange = False, _
    $ixOffset = _WinAPI_GetSystemMetrics($SM_CYSIZE) + _WinAPI_GetSystemMetrics(7) , _ ; SM_CXFIXEDFRAME
    $iyOffset = _WinAPI_GetSystemMetrics(8), _ ; SM_CYFIXEDFRAME
    $sPath, $sPassword, $sConfirm, $sPlainText, $sRet

    GUISetState(@SW_SHOW, $hGUI)

    GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")

    While 1
        $msg = GUIGetMsg()
        Switch $msg
            Case $GUI_EVENT_CLOSE
                Local $sClip = ClipGet()
                ExitLoop
            Case $aControlID[0]
                _GUICtrlEdit_SetSel($aControlID[0], 0, -1)

            Case $aControlID[3]
                $sPath = GUICtrlRead($aControlID[0])
                $sPassword = _WinAPI_WideCharToMultiByte(GUICtrlRead($aControlID[1]))
                $sConfirm = _WinAPI_WideCharToMultiByte(GUICtrlRead($aControlID[2]))
                _TestInputs($aControlID, $sPath, $sPassword, $sConfirm)
                If @error Then ContinueLoop
                $sPlainText = FileRead($sPath)

                _ControlHide($aControlID[3], $abShowFlag[3])
                _ControlShow($aControlID[5], $abShowFlag[5])

                $sRet = Encrypt_3D($sPlainText, $sPassword, 1)
                $iError = @error
                If $iError Then
                    _ErrorMsg($iError)
                    If $iError = 6 Then $bInterrupt = False
                Else
                    _Output($hGUI, $sRet, $sPath)
                EndIf

            Case $aControlID[4]
                $sPath = GUICtrlRead($aControlID[0])
                $sPassword = _WinAPI_WideCharToMultiByte(GUICtrlRead($aControlID[1]))
                $sConfirm = _WinAPI_WideCharToMultiByte(GUICtrlRead($aControlID[2]))

                _TestInputs($aControlID, $sPath, $sPassword, $sConfirm)
                If @error Then ContinueLoop
                $sPlainText = FileRead($sPath)

                _ControlHide($aControlID[4], $abShowFlag[3])
                _ControlShow($aControlID[5], $abShowFlag[5])

                $sRet = Encrypt_3D($sPlainText, $sPassword, -1)
                $iError = @error
                If $iError Then
                    _ErrorMsg($iError)
                    If $iError = 6 Then $bInterrupt = False
                Else
                    _Output($hGUI, $sRet, $sPath)
                EndIf

            Case $aControlID[6], $aControlID[7]
                _AccelKey($hGUI, $aControlID[0], $aControlID[1], $aControlID[2], $msg)
        EndSwitch

        $aMousePos = MouseGetPos()
        $aWinPos = WinGetPos("The Big Rip")
        If ($aMousePos[0] > $aWinPos[0] + $iyOffset) And ($aMousePos[0] < $aWinPos[0] - $iyOffset + 320) Then
            $bInRange = True
        Else
            _HideAll($aControlID, $abShowFlag)
            $bInRange = False
        EndIf

        If $bInRange Then
            If ($aMousePos[1] > $aWinPos[1] + $ixOffset) And ($aMousePos[1] < $aWinPos[1] + $ixOffset + 20) Then
                _HideAll($aControlID, $abShowFlag, 0)
                _ControlShow($aControlID[0], $abShowFlag[0])
            ElseIf ($aMousePos[1] > $aWinPos[1] + $ixOffset +22) And ($aMousePos[1] < $aWinPos[1] + $ixOffset + 79) Then
                _HideAll($aControlID, $abShowFlag, 1)
                _ControlShow($aControlID[1], $abShowFlag[1])
            ElseIf ($aMousePos[1] > $aWinPos[1] + $ixOffset +82) And ($aMousePos[1] < $aWinPos[1] + $ixOffset + 139) Then
                _HideAll($aControlID, $abShowFlag, 2)
                _ControlShow($aControlID[2], $abShowFlag[2])
            ElseIf ($aMousePos[1] > $aWinPos[1] + $ixOffset +140) And ($aMousePos[1] < $aWinPos[1] + $ixOffset + 160) And ($aMousePos[0] > $aWinPos[0] + $iyOffset) And ($aMousePos[0] <= $aWinPos[0] + 107) Then
                _HideAll($aControlID, $abShowFlag, 3)
                _ControlShow($aControlID[3], $abShowFlag[3])
            ElseIf ($aMousePos[1] > $aWinPos[1] + $ixOffset +139) And ($aMousePos[1] < $aWinPos[1] + $ixOffset + 160) And ($aMousePos[0] > $aWinPos[0] + $iyOffset + 107) And ($aMousePos[0] <= $aWinPos[0] + $iyOffset + 210) Then
                _HideAll($aControlID, $abShowFlag, 4)
                _ControlShow($aControlID[4], $abShowFlag[4])
            Else
                _HideAll($aControlID, $abShowFlag)
            EndIf
        EndIf
    WEnd
    If StringLen($sClip) > 0 Then
        Local $iMsg = MsgBox(262148,"Warning","The clipboard contains data." &@CRLF &"Would you like to clear the clipboard?")
        If $iMsg = 6 Then ClipPut("")
    EndIf
    FileDelete("~NGC 6791.jpg")
EndFunc ; ==> Main

Func _Output($hGUI, $sString, $sPath)
    Local $sDrive, $sDir, $sName, $sExt
    Local $asPath = _PathSplit($sPath, $sDrive, $sDir, $sName, $sExt)
    $sDir = $asPath[1] & $asPath[2]
    $sName = $asPath[3]
    $sExt = $asPath[4]

    If StringRight($sName, 1) = "]" And StringRegExp(StringTrimRight($sName,1), "[[]" & "d+b") = 1 Then
        $sName = StringRegExpReplace(StringTrimRight($sName,1), "[[]" & "d+b", "")
    EndIf

    Local $iDupeCount = 0
    While FileExists($sPath)
        $iDupeCount += 1
        $sPath = $sDir & $sName & "[" & $iDupeCount & "]" & $sExt
    WEnd

    GUISetState(@SW_MINIMIZE, $hGUI)
    GUISetState(@SW_DISABLE, $hGUI)

    Local $sWinTitle = " The Big Rip - " & $sName & $sExt, $iWinWidth = @DesktopWidth*.82, $iWinHeight = @DesktopHeight*.76, _
    $winStyle = BitOR($WS_OVERLAPPED, $WS_CAPTION, $WS_SYSMENU, $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX)

    Local $hChildGUI = GUICreate($sWinTitle,$iWinWidth,$iWinHeight, $iWinWidth*.06, $iWinHeight*.04,$winStyle)

    Local $iPartWidth = $iWinWidth - 226, $iBtnStyle = BitOR($BS_CENTER, $BS_FLAT), $sFontFace = "Lucida Console"

    $hLabel1 = GUICtrlCreateLabel("Save In", 0, 4, 50, 12, $SS_CENTER)
    GUICtrlSetResizing (-1, $GUI_DOCKSIZE)

    $hEdit1 = GUICtrlCreateInput($sDir, 51, 1, $iPartWidth*.70, 20)
    GUICtrlSetResizing (-1, $GUI_DOCKHEIGHT)
    GUICtrlSetBkColor(-1, 0xF5F6CE)

    $hFolderBtn = GUICtrlCreateButton("..", $iPartWidth*.70 + 60, 1, 28, 20, $iBtnStyle)
    GUICtrlSetResizing (-1, $GUI_DOCKSIZE)
    GUICtrlSetFont($hFolderBtn, 9, 500, 1, $sFontFace)

    $hLabel2 = GUICtrlCreateLabel("File Name", $iPartWidth*.70 + 92 , 4, 54, 12, $SS_CENTER)
    GUICtrlSetResizing (-1, $GUI_DOCKSIZE)

    $hEdit2 = GUICtrlCreateInput($sName & "[" & $iDupeCount & "]" & $sExt, $iPartWidth*.70 + 152, 1, $iPartWidth*.30, 20)
    GUICtrlSetResizing (-1, $GUI_DOCKHEIGHT)
    GUICtrlSetBkColor(-1, 0xF5F6CE)

    $hSaveBtn = GUICtrlCreateButton("Save", $iPartWidth + 160, 1, 60, 20, $iBtnStyle)
    GUICtrlSetResizing (-1, $GUI_DOCKSIZE)
    GUICtrlSetFont($hSaveBtn, 9, 400, 1, $sFontFace)

    $hEdit3 = GUICtrlCreateEdit("", 0, 21, $iWinWidth, $iWinHeight - 21, BitOr($GUI_SS_DEFAULT_EDIT, $ES_NOHIDESEL, $ES_READONLY))
    GUICtrlSetLimit(-1, 32000000)
    GUICtrlSetResizing (-1, $GUI_DOCKTOP)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetFont(-1, 10, 400, 1, $sFontFace)
    GUICtrlSetData(-1, $sString)
    GUICtrlSetState(-1,$GUI_FOCUS)
    GUISetState ()

    $iSaveStatus = 0

    While 1
        $msg2 = GUIGetMsg()
        If $msg2 = $GUI_EVENT_CLOSE Then
            If $iSaveStatus = 0 Then
                $iGetResponce = MsgBox(262193, "The Big Rip", "Quit without saving?")
                If $iGetResponce = 1 Then ExitLoop
            Else
                ExitLoop
            EndIf
        EndIf
        If $msg2 = $hFolderBtn Then _FolderSelect($hEdit1)
        If $msg2 = $hSaveBtn Then _FileSave($hEdit1, $hEdit2, $hEdit3, $sExt, $iSaveStatus)
    WEnd
    GUIDelete($hChildGUI)
    GUISetState(@SW_ENABLE, $hGUI)
    GUISetState(@SW_RESTORE, $hGUI)
EndFunc

Func _FileSave($hEdit1, $hEdit2, $hEdit3, $sExt, ByRef $iSaveStatus)
    Local $hFile = GUICtrlRead($hEdit1), $iSave = 1
    If FileExists($hFile) Then
        If StringRight($hFile, 1) <> "" Then $hFile &= ""
        $hFile &= GUICtrlRead($hEdit2)
        If FileExists($hFile) Then
            $iGetResponse = MsgBox(262196, "Caution", "That file already exists." & @CRLF & "Are you sure you want to overwrite it?")
            If $iGetResponse = 7 Then
                $iSave = 0
            EndIf
        EndIf
        If $iSave = 1 And StringRight(GUICtrlRead($hEdit2), StringLen($sExt)) <> $sExt Then
            $iGetResponse = MsgBox(262196, "Caution", "Are you sure you want to change the file extension?")
            If $iGetResponse = 7 Then
                $iSave = 0
            EndIf
        EndIf
    Else
        MsgBox(262160, "Error", "That directory does not exist." & @CRLF & "Please select an existing directory.")
        $iSave = 0
    EndIf
    If $iSave = 1 Then
        $iSaveStatus = 1
        $iTest = _FileCreate($hFile)
        If $iTest = 1 Then
            $fHandle = FileOpen($hFile, 1)
            FileWrite($fHandle, GUICtrlRead($hEdit3))
            FileClose($fHandle)
            MsgBox(64, "File Save","The file has been saved.")
        Else
            MsgBox(262160, "Error", "Error saving file.")
            $iSaveStatus = 0
        EndIf
    EndIf
EndFunc

Func _FolderSelect($hEdit1)
    Local $hFolder = FileSelectFolder("Save in:", "")
    If Not @error Then
        If StringRight($hFolder, 1) <> "" Then
            $hFolder &= ""
        EndIf
        GUICtrlSetData($hEdit1, $hFolder)
    EndIf
EndFunc

Func _HideAll($aControlID, ByRef $abShowFlag, $iExclude = -1)
    For $i = 0 To 5
        If $i = $iExclude Then ContinueLoop
        If $abShowFlag[$i] Then
            _ControlHide($aControlID[$i], $abShowFlag[$i])
            Return
        EndIf
    Next
EndFunc

Func _ControlShow($iControlID, ByRef $bFlag)
    If $bFlag = False Then
        GUICtrlSetState($iControlID, $GUI_SHOW)
        $bFlag = True
    EndIf
EndFunc

Func _ControlHide($iControlID, ByRef $bFlag)
    GUICtrlSetState($iControlID, $GUI_HIDE)
    $bFlag = False
EndFunc

Func _CtrlInitState($aControlID)
    For $i = 0 To 5
        If $i < 3 Then
            GUICtrlSetColor($aControlID[$i], 0xFFFFFF)
        Else
            GUICtrlSetColor($aControlID[$i], 0xEAF7FD)
            GUICtrlSetFont($aControlID[$i], 13, 400, Default, "Comic Sans MS")
            GUICtrlSetCursor($aControlID[$i], 3)
        EndIf
        GUICtrlSetBkColor($aControlID[$i], 0x000000)
        GUICtrlSetState($aControlID[$i], $GUI_HIDE)
    Next
EndFunc

 Func _WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
     If BitAND($wParam, 0x0000FFFF) = 9 Then $bInterrupt = True
     Return $GUI_RUNDEFMSG
 EndFunc   ;==>_WM_COMMAND

Func _AccelKey($hGUI, $idEdit1, $idEdit2, $idEdit3, $msg)
    Local $sCtrlClass = ControlGetFocus($hGUI)
    Switch $sCtrlClass
        Case "Edit1"
            If $msg = 10 Then _GUICtrlEdit_SetSel($idEdit1, 0, -1)
        Case "Edit2"
            If $msg = 10 Then
                _GUICtrlEdit_SetSel($idEdit2, 0, -1)
            Else
                _GUICtrlEdit_ReplaceSel($idEdit2, @TAB)
            EndIf
        Case "Edit3"
            If $msg = 10 Then
                _GUICtrlEdit_SetSel($idEdit3, 0, -1)
            Else
                _GUICtrlEdit_ReplaceSel($idEdit3, @TAB)
            EndIf
    EndSwitch
EndFunc

Func _DisplayPassChar($hHandle, $iControlID) ; By Guiness
    Local Const $EM_GETPASSWORDCHAR = 0xD2, $EM_SETPASSWORDCHAR = 0xCC
    Local $aControlGetPos, $iPasswordCharacter, $tRect
    $iPasswordCharacter = 9679
    GUICtrlSendMsg($iControlID, $EM_SETPASSWORDCHAR, $iPasswordCharacter, 0)
    $aControlGetPos = ControlGetPos($hHandle, "", $iControlID) ; REMOVE COMMENT => GUICtrlSetState($iControlID, $GUI_FOCUS)
    $tRect = DllStructGetPtr("int " & $aControlGetPos[0] & ";int " & $aControlGetPos[1] & ";int " & $aControlGetPos[0] + $aControlGetPos[2] & ";int " & $aControlGetPos[1] + $aControlGetPos[3] & ";")
    _WinAPI_InvalidateRect($hHandle, $tRect, False)
    Return Number($iPasswordCharacter = 0)
EndFunc

Func _TestInputs($aControlID, $sPath, $sPassword, $sConfirm) ; Test if input fields are correct.
    If Not FileExists ($sPath) Then
        MsgBox(BitOR(262144, 8192, 48), "Error", "Invalid Path")
        Return SetError(1)
    ElseIf $sPassword <> $sConfirm Then
        MsgBox(BitOR(262144, 8192, 48), "Error", "Confirm Failed." & @CRLF & "Try again!")
        GUICtrlSetData($aControlID[1], "")
        GUICtrlSetData($aControlID[2], "")
        Return SetError(1)
    EndIf
EndFunc

Func _ErrorMsg($iError)
    Switch $iError
        Case 1
            MsgBox(BitOR(262144, 8192, 48), "Error", "Problem encountered parsing input.")
        Case 3
            MsgBox(BitOR(262144, 8192, 48), "Error", "Password is too weak or invalid.")
        Case 4
            MsgBox(BitOR(262144, 8192, 48), "Error", "File size or format exceed 3D modelling capacity.")
        Case 5
            MsgBox(BitOR(262144, 8192, 48), "Error", "Failed to decode")
        Case 6
            MsgBox(BitOR(262144, 8192, 48), "The Big Rip", "Aborted by user.")
    EndSwitch
EndFunc

I think I may make a weaker version of this (to increase speed and size limitations).

Edited by czardas

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

You have just over 31 days left to solve this and claim the prize, before I reveal the solution.

Edited by czardas

Share this post


Link to post
Share on other sites

The challenge is now officially closed, with nobody having discovered the solution which I will now reveal.

First the encryption from the zip file in post #3: (better to use the zip file - in case of forum code box disfunction)

8398CC22481594391D66A715898B59B30A2E42CCD37EA03239B434B1748DB9D33950B2DB38B640C348613B80C26786
43305CCB0D2EB1D1691A00D2F030BCE2681315616B543909933690B2EE5A572A78D7DCE13E99D19782C6AD5CA602BEE666219B9C058488E2210B9779C199B31CADDC6763732D2C4F196632E9B986C032CD6B
664852B8146B1B6949999B7CC0480BBC578EA162BC49190B111120E5931B4C59DC519E0D646A38C1723D806D
861C5C60D9991CEC29C4CB1A31759A14B5AD8C53B326E1863A9CD035853DA590E9BCE45E2ED5AB2716C16596BA12B126D9134328BE80DB8415964B0C81918641D9D3093379883E49852629118293D3A765AB
1EEC3658648D83BE991CAAD78A1B58E8B08DA09C2B4B08DB5D031858419C6589C6EB8B1CF85250
FEBD9CD2C0368624723F2F86B666A19AF03302C23030970E266BC37912BD5431B2DD3C8B66316BD3B5B608D48A34FBDD4428C76A5F2D1CE19F50C0CB28EBA23E2170BE9A6B114C43661A5CD1FEAA1713C895
A3813B6D2A3DA2EFDC8AC1D36D01983CEAD045C4B94F4DCB689B0B50C361BEE2C5B71039BC147ADD0915BEA61D44CBDB4B043E2065AEE5B2B31498803238132B81C819D2EC813D19D08D14BCCCD2C76C4EC566CE38
0010220598156C2831A3085950733EA6151268D0461235DCD16F436EEEC33835803A9944033310633ADBD34C879E2C2F12C2BB7EBD6354395A60A0DD4E8C1D4B5CACCD1CA0D192719B66BD9A34EC4B59731E3C1E3A
E6C9D1AE98558D0B1B167C0644266B03481902636C57623AB06BCB9A5BA6BC8D96B06EA2BD89A5DCD09E

5ECC885BDD86319CC8F5D011D0603B5C0167BF9112E323B18910332E456CC99698B32CCDC812B588916CC0
8A64BCE5B740BBBAB858BB2CB4E636DD2CA19B8315BB28A47176698653A994E5B89CECAEC8D0081A31FF8994
4BED4EB36404688313350E02B18DB3327AD93CC42B3012DCA5A5A61D6CAC2D8B13ADDE84423B6F4AF047
1C2AD039CBE03DA0EEA6C164ACD471646E4C8D846F2C3B95666DA95471003341A94A9C
6C73B3FCB273BC6C4750DA4A9C2B943D6D9980328597823086531C00C84C8954C056B85DE8DC59651F591E
E4E67BB9C38A9684680C6ED576A4A479BE6910333B2A52DAC67B5AC0CB1B56007337284953B2436C36
31BCC19DC8D9AB5E2F2968D39C22B91C8EE2A30B2A54836C74C4DCA2CC123F05A60CA0E4
052A346EA575BE8A3FB530BA062D2E55770AD7570149DDBE4C2921BC82B5635C2C434369CE
4F681C15A5D4631BD8DCB2B4C560F36A517444709583B70B5A4B53499B473B1C1CA2
DC0D260039D08C01A1A169930345688CA42CE9CA06E3C0F33B3A8C665365A3D83EA0E11D63791E24C57EB0D1D0
3ADB15BC29EB8CD681CD30E43D9AF8D99C466DA4AA518CC2B09C9B25BA1338349A
2038D705E250333468E9DB989C00C80EE0B8D2135E9E
2929D9D19D766B058CEC01
FACA181732E618190932CD8F2B9CE642603582CC82BB228A88C190626B90

CA5D1A54E8B04E87B85DA6B22CA697499E9D53B9CD6EACCDD1140EB4091137B001A90D035A10B8D997B4B2C30D
49630442366618BACCC32E8C31903C5C16D8D4331C4B6003

A5386B4B3C1058A64932CB9A875D789648C835385F403CD27E040C683CA4637CDB9C219820CCA10AD6534A129B0D09BCE3286B982D8D130290CEB18850B34C41761EDF3910695B23181B991C818AC307DC0C
0465A42C5118133F6909116B6D1B1D59BE02226CB6C56B3DC585A03D1D62C8090DA509958B40B865BA5199E84AC739A28BA4BD18923CC65F418844DFA60CEA51CBB0360E61D2BB523723C897A3A1F4CD830854
A60A96C585A8ED09936B9465B31E289C068991B63BCB3C658B4AD7B6CCC60C1B89DD5EA0F7A95992C3B896CE446363DB5DDD0B88124B1EE19C9ED373EAC81610903A52D6E1BECC8D77BEAC283164E08CAA
B99EF01491A6AE286B212B923CD030B374972A28376AD384B640FD433EC99B94AAE878DC8856C09C58C0F3F59B14BCA8709A9F01A572C369B81E40A5AB967B02B5

9381BB2C62B420C95CA6F4892D25A7B4CED8FCC7BA1D6A447A5B2A56C3063C4AC63F1AB9A85028542F908622BCA0D9
4BE819BC6B7DCE081D3B7D285C3EB8DB13699808CC54A2B19918C812B0EA42D4
748EAC728D92B3126C4598002C2139836C5B9370BDC6F5983956C63EBD9C5B2D603DA6C072BC031C591CC9
B3EA6A3C83292A041CC58334C03570957B4FB8936C333F8CEADCCB5C6AD09C0118833C8166
BD193ECF13D1C64EB904B4C2C8593998C5A5C3A9978E20F42C73930F5A1B799F5664BE3F492A989320BCC4A6
086C803C5598E0DC3E4C0A1FD9552215ADA8C5923C1D62338E0962389B00CBAC9B780F392D
8776A5ADD23B0ECDA95239EC126E85E342BE80360A9311B892
B161359536401FC5DB23D1991E9862656A56B381C40121DC6EEF0E533310318D25BCAC8A953D68006BCB7A20C132
B489923F82C5B6CB2230B2FC29BCC2BCDC0C6E2A1BE08E8D46D34F68F2E63C20C33EDC013C28CE22886DC812D3
606C0D8C946C82BB0B6D244A1EC122BB3089585C08CB238310603C4C8600CAFF1CC8D8BC81C0AC14B9A61339
A7403720DC1C0D8642EE37150CEE167098C8DE4403383581E0B65173BD2AC07754C675BE2D503BC39FD3524F6B40CA
C909D7536332EA88C09EF677123994A9C508E98C9ECCE16953BC82378C2E46832BC91FD6640C8C5680C190BC85
B62EE64C0DC8346E8978BC02B1A433180242290561681646AB19AA9AEC8067B5A11063282E2B31218EC36AD919B5
AC620EDCD93B3C612103BA5377DD25318346995C1B06281426AB381C0A1D847E20395D8FCDE375798B83342906EC
E58D9B961B098348391E360B059E133F40A31C8B4D4EE233603D91983C905CBE059D509C21966CE03480E9881C07D5
AE606196C235A91104B393323C13872856054A503B766C8A5B1DDC82DA14E9184B1A985D0B488F99
9B672B2D748CE198DB5F5118C6385D5164C1B0633CC36E2CB1CC5484B3
BB4B1CD1BA6F723CCA18908A5634DE065E9C9A3B0E8614E1BA1B98210CAD62C8830CA0B3163196B52194999B
4A54B841B21CA8E92CA31B30C4672675B8DD
8B968435BA6A9CCA2C

CCB43ACB2D1B74246B129E5881B7713CE85B56562ED64F2718A91DDC30C6581DAEE1BF63664DBB5CC49588EF0B4C54094A52B19C0D8C222B711EAC09DBB11CD1398CC032440B821956395A3CD39B4B9A0B0640C8
9300146EC3723C2D131990E1358803E3EC1D9F55BDEC766AB0C466BA29809038D064CD141CACAADCCB31BB60D95031FA4EC23B363308B99C1431961D25A8C59D866EA4E59323BE4675A11DD1B26058167BB98D65B38B
8D865CDD4905E2DB11B370316180B4EDCDA3B855C7C34B2B258322C2B61C862E210E581D88C78BDB18EDBBDC89D48363A99A5ECB1BD0D95C248094E123A6F8C618C2B858D8E4BC2C086D340D64B16F6192D233A8CF
B6B0C6FCC153AD65D7BDD1B337642C296B146953C8B60EF582B2E99DC5ECD264058ED2E5899ACAC35183
B23C6E78B8EC09B470D977398CD5EC099633501D9B3AB30C823E00C91D86C0FFA1F806830B16BB
5C2DFDC526643EC62E5B32B0C395A86116A6EB26D800BA14681B23291C537F45F813685C8C05
623FA893FB5B0271B853B338585D919D0C646238C065BC2191B5BD407AC91A4C0D2D048B3F3065F8

18A1AE16D0B30663723918102DA6CF65C0F58CA6D48C458990BDC76D93BA92B766395663618485C3
195516189565F5B059958B61316997BC098C222D555673812C64AB08CE3694A25DAB389ADF4245291F

08D4B896099C8B090AD89E8B090CD15C05A99AF38B14AAD6F2803B5C10C5BF4417703DC62C372E8D
18C4B34ACD36B1961C04330B6E933D86B03670BC896A30695B1A3402ECE698FE9B5E8AF57CCF
6D42C1C412CEDB4CCB803D0661389D42036AE2607118C19FA5560303959B68BB35CA3DAE1C4C
48E5932E80A632D2D0C4428D1CAD656F530A10C332BC4E529017348A58695C0B91F4443502D91B4810
3C8661A4C1959308E91632311919B5C14992ED02B5985EDF503A

466E416ECC6E660235B2B46AD5DB547F89BCB93C5C543A3C8765886958D7623CD81B0FA30C84F4279D
CD1CD8118BBB5162AEDB232C860CAD4030C8335239731838166634E99EC8CC2A9C4E52BEA1C8AC699B
26BC53B0CA9D1BE6011A132AC2DB532959CD95A31816DCAAD4246B633B5A547B4D9754B2B86B5CD8D90BB4AD93687CE138558996481C1E2F915BD426B5BC0CC5B3BBD722312D6D6A3C5B30E902392A10B38C4D3CAD9A903B
6CCF6A1035E8DC6EA1EB713E04B604B891B604B313B9BA368234CDB973173BA630486B6AD231294C6635ACAF4CA2C141323D8EC18CA58952386E667941D3C4F9363489803A12DE38416A3232CC899D073B5D0C0C
08CBD1848C428B290EEAC694C8D53D5D843DC44DE0CF6FA810CB707C6F85776EE8BB9F67ACA9D443581325B8981D00DB0980347E3DEC8708ECE954AB0D3C69818A333927D431D7D8BE6AE95F6948D6413B9C
C2481166381C4F0DE6263D9308B61020BC86C4670F8462B128943B022C16F8C76B38CAFC1C5440653608C896B8E2653D34AC8DB1C8
C8A05EECEC689E36C03E1D4282630B5A5B133D4FEB1F02D9D8A62D961E8A45CCA71E7D206AAEC391CE34B856247B19746D96C62B15943E7FCE62AEA405734CED424918C48F784855A19163AD1806BA
9C2B61CB2BD1664470B5935619D91126189D46
822B0562CDB82C069E598D2993306913433D6BDCCEA909999343519B4C335C2283618D823D058B5ECB2C5F0ACD64
958CE43A55D6BDA1AA89DC21FD6AC2B9F2D91D05A64CCD46E186C314895B01BAB4B4BF5B003D427CA8C4
3B106D4E53AA148EFB1FE6B0C34B0ADCC1E149585D776B2595AC49D8C8DD4530E6F85C1B3CF1BD616CE7A470
B19E7C20B9030910D581656238E810C248FA02CD067A1988B3268666491D995933A54EC869C34C811A1E19BA186D
C0BD110A0A34E8BC3CA4FB5EA323C85276664032C4A30E691CA369DD8AC2C237B2FB095B2C686B77991DE431583ACA
9FD6956B16AFA110B95B93BAF649556C089CA24794FB1C018F8A4D830816E1A841397E219EA14060BD8D28194236D21584C6B6
5C4B8709DA3C1E6D9B43985E1B7C219FD3E9D44C093ABDA9516F5BA961D9830349DA9D40A5A56D7134E468B5C9A1E0
197270C4DB5A0C8AC403E2B061EF1791D810

C6B3B613623A18991DE6
FE819AC9AFC6060CD9C391B48965C03910316738D783649604ABDE9582199C69898ADE918B1C967581B4
8D0722691097937A6A65BB26C0161E870D2B0F5ADD02C68A195A7D
381C0B5D6B496B9D9D4B4B5ACA5C81
F5A64B9168C8170EC3395988C53CAE0C241C0528BD6E658844B36E0131A5A65D636B256D51AB42AAB2
229D0763B1691B63B648DFC022F95A9C62C46CFCC99EE5EB46CACB5583419C01323ECC0BE060C8
6D38D8C1FFEE164B0CBDE306B3242DBCC2C91CA2D5D37EA4933AC0D2CC483C4C2C2C7B49281AC3803C00C0

3A5BBD8844698E8B509EC7BC00DBD01C023CA2758DEF323319B8D0B6BB031331BD

495EE987B8CDDAE95310CCCCC62C8E0E6711B310BB2AED9D1777A0B5E85A9B4168AF2685896816461535A919DCEB2E48E16A3CEF3F181D27231260BAD3A36D02CD46E23AE4332A1163B1B0D06136581DACE508DC24E9
1E8DB98165D2666B10B4CE1819970EBD15B0CC5C4B891D81C4238AD60D0CCEA773616A5BD36239161C1234630858D300BE20B7B07D86391191C6E6BB8C679BD95EA205BCE8F49B384862

B14C046418533AEBC33309533B66A92C41991513205C690A95C9172DC0D3763C80322436B33A90B3609DE23616948CB311A3B322B5687C6957E30DC4A039C48CAC6AE3903331B760DC88EED2077DE079D36B
1182B03185F3381CCA30C164B2B85EA0BEC138DCE124CD51C1DECCE62B5F2862867CA2C5385286BFE4DD22D07E8944FA7A7C8CE5916C8731976D8D0898CBB39B348A1AD000DB0999B06C9C8C23C0D2E80C89CB9C01A59E



392DE2DB30F643BC68
DF0D8B5AC4C93A4500CCDC4F3B985C8CC6DC918B42371166B640D23E0C8461BD6852BBC3A3171856
2922C2E89B170362B4A24A41BEE567A435AC65A5DAD18915CC676B960D03B95D22C6434B28D8947DA5
69DE06D959BCA1966C24CE8C20193C4B74BD20358621BBD25968196B685726CB659402CE6821BCA6916B0E8E89C3
0DCC226B9F48459723005D13133C02688B0C1C663965B1BB0779DCDB62AF5C0613285CA6E1946C0AB9119CCDEB01
6BD383CC28D42E2CA8991469048312B8DD873F48DC8C3D81932DAA8BDD60D7703D918FBCD918BD051C49EE009E60
C5B996D9DE1E
02D5CD88C9905B91B50327923C5939DB363C86FC215031C164AD510E1C28CA1E60BE136311D441B18959
0427D3A18DAD05FAD34A503CD69ACE1316C5D0631E06206D95DC4467B36259D4C99739713ACB59D6E8

Now the plain text:

[Extract]
Conventional wisdom says the universe is
infinite. But it could be finite, merely giving
the illusion of infinity. This possibility has
plagued philosophers and  scientists since
the beginning of recorded history. But now
modern science is starting to drag this
abstract issue into the realm of the real,
the tangible and the observable.

How the universe got its spots looks at how
science is coming up sharp against the mind-
boggling idea that the universe may be finite.
Such a revelation would provide the ultimate
twist to the Copernican revolution, for we
would find out exactly where we are in the
cosmos. Its impact would be even more
radical than the discovery that the Earth is
round or that the Earth is expanding.
Through a decade of observation and
thought-experiment, we have started to
chart out the universe in which we live,
just as we have mapped the oceans and the
continents of our planet.

Now, in the dawn of the new millenium, details
of this grand cosmic map are coming into focus.
Through a kind of cosmic archaeolegy and
without leaving Earth, we can look at the
pattern of hot spots left over from the big
bang and begin to trace the ‘shape of space’.
Beautifully written in a colloquial style, How
the Universe Got its Spots explores our aspirations
to observe our universe and contemplates our
deep connection with it. While relating her own
personal and intellectual journey through
space abd time, the author gently takes in such
gravity-defying concepts as black holes, time-
warps, invisible ‘strings’ and chaotic flows.
It is a fantastic voyage, impressing on us the
extraordinary fact that we are progeny of this
universe and that our ability to understand it
is an inheritance.

£16.99
IN UK ONLY

Janna Levin is an Advanced Fellow in
the Department of Applied Mathematics
and Theoretical Phisics at the Universty
of Cambridge. She was born in the United States
and lived in Chicago and New York.
She received a BA in physics and astronomy
from Bernard College, Columbia University,
a PHD from the Massachusetts Institute of
Technology, and subsequently worked at
the Canadian Institute for Theoretical
Astrophysics, and the Center for Particle
Astrophysics at the University of California,
Berkly, before moving to England.

Weidenfield & Nicolson
The Orian Publishing Group
Orion House
5 Upper Saint Martin's Lane
London WC2H 9EA

Author Photo by Louise Dignand

‘Janna Levin is one of the most tallented
and original of the your cosmologists and her
book combines a tour of the frontiers of
cosmology with an intimate account of her
struggles to reconcile the demands of a
scientific career with the demands of the
heart. No other scientist has
yet had the courage to write such an honest
and personal account of what it is like to live
the life of a scientist’

LEE SMOLIN, AUTHOR OF THE LIFE OF THE COSMOS
AND THREE ROADS TO COSMIC GRAVITY

ISBN 0-297-64651-6

[Extract]
In the last twenty years or so, a clear pattern has emerged in the world of chess—
the overall superiority and depth of the Russian chess masters. This book was prepared
originally in 1947 by Irving Chernev, one of our countries leading experts, in an effort
to point out the causes and factors contributing to this decisive supremacy of the
Soviet aces over American and other players.

Chernev has put together a remarkable anthology of games—chosen from among
thousands of top-flight matches involving Russian masters. Fully annotated and dia­
grammed, they provide a unique, analytical view of the emergence of Soviet domin­
ance, while illustrating the winning styles of about 40 prominent players. There are
over 50 modern, instructive games by such greats as Botvinnik, Keres, Boleslavsky,
Kotov, Ragizin, Tolush,and many others.

For this new edition, Chernev has included an additional section containing analysis
of six games played in recent years by Smyslov, Petrosian, Taland Bronstein. Inci­
dentally, all were virtually unknown when this book was first published—indicating
the continuing progress and development of Russian chess mastery.

Here are examples of the artistic endgame, the brilliant queen scarifice, the extended
combination (one splendid combination by Botvinnik is carried out successfully for
over twenty moves!), the imaginative attack, the beautiful trap, etc. in games which
help to make clear why the Russians have attained the top rank in international play.
These games offer a treasure-trove of ideas in chess strategy; a study of them will be
of inestimable value to chess players of every level.

Enlarged version of the work first published in 1947; 6 additional games. New preface
for this edition by the author. Total of 637 diagrams. viii + 215pp. 5 3/8 × 8.

Dover 0-486-21165-7

And finally the password:

RubinsteinsSchachpartienentdeckt
ichfürmichziemlichspät.Ichwar
bereitsMeisterkandidat.DerReichtum
anschöpferischenIdeen,dieRubin-
steinhinterließ,beeindrucktemichda-
malssehrstark.
1 person likes this

Share this post


Link to post
Share on other sites

#13 ·  Posted (edited)

Conclusion

The impression I get is that this system is very strong. I can only liken it to doing a massive Rubix cube blindfold: since a normal rubix cube has a known outcome. Considering that it took Google 30 years to crunch through all the possible solutions from all starting possitions of the rubix cube, I never much feared for my money. However encryption is not my expertise, so who knows?

With this project I learned something valuable about handling complicated algorithms, yet the overall concept is in reality very simple. I wouldn't go as far to say it is impossible to crack, just that it may take forever.

The original idea for this project started here:

Edited by czardas
1 person likes this

Share this post


Link to post
Share on other sites

#14 ·  Posted (edited)

I think I may make a weaker version of this (to increase speed and size limitations).

 

I did exactly that. There's no reason to have an encryption where you have to wait until the end of the universe to see if anyone can crack it. The following encryption should be far weaker than the previous. It's much faster and more flexible. The code still needs additional error checking.

CODE DELETED :construction:

;

;I just need to create a new GUI for it. This is my final attempt at working on such a project. Code will be removed to a new location shortly, so take a look at it now. I prefer it for its simplicity.

Edited by czardas

Share this post


Link to post
Share on other sites

Some of the links in this thread will be removed shortly to free up server space.

Share this post


Link to post
Share on other sites

This is quite interesting.. how the heck does one come up with it?! :thumbsup:

Share this post


Link to post
Share on other sites

Joeit I'm glad you find it interesting. I found it a challenge to come up with a unique encryption. How strong it really is is difficult to say. If I try to do the maths for the time it takes for brute force attacks, the numbers get silly. I know how it works and I wouldn't have a clue how to unscramble the data without the correct password. This is not quite the final version, but very close. :)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0