Login Register






[.NET] Blowfish encryption filter_list
Author
Message
[.NET] Blowfish encryption #1
Code:
Option Strict On Public Class BlowFish Private Shared ReadOnly _P As UInt32() = { _ &H243F6A88UI, &H85A308D3UI, &H13198A2EUI, &H3707344UI, &HA4093822UI, &H299F31D0UI, _ &H82EFA98UI, &HEC4E6C89UI, &H452821E6UI, &H38D01377UI, &HBE5466CFUI, &H34E90C6CUI, _ &HC0AC29B7UI, &HC97C50DDUI, &H3F84D5B5UI, &HB5470917UI, &H9216D5D9UI, &H8979FB1BUI} Private Shared ReadOnly _S As UInt32(,) = { _ {&HD1310BA6UI, &H98DFB5ACUI, &H2FFD72DBUI, &HD01ADFB7UI, &HB8E1AFEDUI, &H6A267E96UI, _ &HBA7C9045UI, &HF12C7F99UI, &H24A19947UI, &HB3916CF7UI, &H801F2E2UI, &H858EFC16UI, _ &H636920D8UI, &H71574E69UI, &HA458FEA3UI, &HF4933D7EUI, &HD95748FUI, &H728EB658UI, _ &H718BCD58UI, &H82154AEEUI, &H7B54A41DUI, &HC25A59B5UI, &H9C30D539UI, &H2AF26013UI, _ &HC5D1B023UI, &H286085F0UI, &HCA417918UI, &HB8DB38EFUI, &H8E79DCB0UI, &H603A180EUI, _ &H6C9E0E8BUI, &HB01E8A3EUI, &HD71577C1UI, &HBD314B27UI, &H78AF2FDAUI, &H55605C60UI, _ &HE65525F3UI, &HAA55AB94UI, &H57489862UI, &H63E81440UI, &H55CA396AUI, &H2AAB10B6UI, _ &HB4CC5C34UI, &H1141E8CEUI, &HA15486AFUI, &H7C72E993UI, &HB3EE1411UI, &H636FBC2AUI, _ &H2BA9C55DUI, &H741831F6UI, &HCE5C3E16UI, &H9B87931EUI, &HAFD6BA33UI, &H6C24CF5CUI, _ &H7A325381UI, &H28958677UI, &H3B8F4898UI, &H6B4BB9AFUI, &HC4BFE81BUI, &H66282193UI, _ &H61D809CCUI, &HFB21A991UI, &H487CAC60UI, &H5DEC8032UI, &HEF845D5DUI, &HE98575B1UI, _ &HDC262302UI, &HEB651B88UI, &H23893E81UI, &HD396ACC5UI, &HF6D6FF3UI, &H83F44239UI, _ &H2E0B4482UI, &HA4842004UI, &H69C8F04AUI, &H9E1F9B5EUI, &H21C66842UI, &HF6E96C9AUI, _ &H670C9C61UI, &HABD388F0UI, &H6A51A0D2UI, &HD8542F68UI, &H960FA728UI, &HAB5133A3UI, _ &H6EEF0B6CUI, &H137A3BE4UI, &HBA3BF050UI, &H7EFB2A98UI, &HA1F1651DUI, &H39AF0176UI, _ &H66CA593EUI, &H82430E88UI, &H8CEE8619UI, &H456F9FB4UI, &H7D84A5C3UI, &H3B8B5EBEUI, _ &HE06F75D8UI, &H85C12073UI, &H401A449FUI, &H56C16AA6UI, &H4ED3AA62UI, &H363F7706UI, _ &H1BFEDF72UI, &H429B023DUI, &H37D0D724UI, &HD00A1248UI, &HDB0FEAD3UI, &H49F1C09BUI, _ &H75372C9UI, &H80991B7BUI, &H25D479D8UI, &HF6E8DEF7UI, &HE3FE501AUI, &HB6794C3BUI, _ &H976CE0BDUI, &H4C006BAUI, &HC1A94FB6UI, &H409F60C4UI, &H5E5C9EC2UI, &H196A2463UI, _ &H68FB6FAFUI, &H3E6C53B5UI, &H1339B2EBUI, &H3B52EC6FUI, &H6DFC511FUI, &H9B30952CUI, _ &HCC814544UI, &HAF5EBD09UI, &HBEE3D004UI, &HDE334AFDUI, &H660F2807UI, &H192E4BB3UI, _ &HC0CBA857UI, &H45C8740FUI, &HD20B5F39UI, &HB9D3FBDBUI, &H5579C0BDUI, &H1A60320AUI, _ &HD6A100C6UI, &H402C7279UI, &H679F25FEUI, &HFB1FA3CCUI, &H8EA5E9F8UI, &HDB3222F8UI, _ &H3C7516DFUI, &HFD616B15UI, &H2F501EC8UI, &HAD0552ABUI, &H323DB5FAUI, &HFD238760UI, _ &H53317B48UI, &H3E00DF82UI, &H9E5C57BBUI, &HCA6F8CA0UI, &H1A87562EUI, &HDF1769DBUI, _ &HD542A8F6UI, &H287EFFC3UI, &HAC6732C6UI, &H8C4F5573UI, &H695B27B0UI, &HBBCA58C8UI, _ &HE1FFA35DUI, &HB8F011A0UI, &H10FA3D98UI, &HFD2183B8UI, &H4AFCB56CUI, &H2DD1D35BUI, _ &H9A53E479UI, &HB6F84565UI, &HD28E49BCUI, &H4BFB9790UI, &HE1DDF2DAUI, &HA4CB7E33UI, _ &H62FB1341UI, &HCEE4C6E8UI, &HEF20CADAUI, &H36774C01UI, &HD07E9EFEUI, &H2BF11FB4UI, _ &H95DBDA4DUI, &HAE909198UI, &HEAAD8E71UI, &H6B93D5A0UI, &HD08ED1D0UI, &HAFC725E0UI, _ &H8E3C5B2FUI, &H8E7594B7UI, &H8FF6E2FBUI, &HF2122B64UI, &H8888B812UI, &H900DF01CUI, _ &H4FAD5EA0UI, &H688FC31CUI, &HD1CFF191UI, &HB3A8C1ADUI, &H2F2F2218UI, &HBE0E1777UI, _ &HEA752DFEUI, &H8B021FA1UI, &HE5A0CC0FUI, &HB56F74E8UI, &H18ACF3D6UI, &HCE89E299UI, _ &HB4A84FE0UI, &HFD13E0B7UI, &H7CC43B81UI, &HD2ADA8D9UI, &H165FA266UI, &H80957705UI, _ &H93CC7314UI, &H211A1477UI, &HE6AD2065UI, &H77B5FA86UI, &HC75442F5UI, &HFB9D35CFUI, _ &HEBCDAF0CUI, &H7B3E89A0UI, &HD6411BD3UI, &HAE1E7E49UI, &H250E2DUI, &H2071B35EUI, _ &H226800BBUI, &H57B8E0AFUI, &H2464369BUI, &HF009B91EUI, &H5563911DUI, &H59DFA6AAUI, _ &H78C14389UI, &HD95A537FUI, &H207D5BA2UI, &H2E5B9C5UI, &H83260376UI, &H6295CFA9UI, _ &H11C81968UI, &H4E734A41UI, &HB3472DCAUI, &H7B14A94AUI, &H1B510052UI, &H9A532915UI, _ &HD60F573FUI, &HBC9BC6E4UI, &H2B60A476UI, &H81E67400UI, &H8BA6FB5UI, &H571BE91FUI, _ &HF296EC6BUI, &H2A0DD915UI, &HB6636521UI, &HE7B9F9B6UI, &HFF34052EUI, &HC5855664UI, _ &H53B02D5DUI, &HA99F8FA1UI, &H8BA4799UI, &H6E85076AUI}, _ {&H4B7A70E9UI, &HB5B32944UI, &HDB75092EUI, &HC4192623UI, &HAD6EA6B0UI, &H49A7DF7DUI, _ &H9CEE60B8UI, &H8FEDB266UI, &HECAA8C71UI, &H699A17FFUI, &H5664526CUI, &HC2B19EE1UI, _ &H193602A5UI, &H75094C29UI, &HA0591340UI, &HE4183A3EUI, &H3F54989AUI, &H5B429D65UI, _ &H6B8FE4D6UI, &H99F73FD6UI, &HA1D29C07UI, &HEFE830F5UI, &H4D2D38E6UI, &HF0255DC1UI, _ &H4CDD2086UI, &H8470EB26UI, &H6382E9C6UI, &H21ECC5EUI, &H9686B3FUI, &H3EBAEFC9UI, _ &H3C971814UI, &H6B6A70A1UI, &H687F3584UI, &H52A0E286UI, &HB79C5305UI, &HAA500737UI, _ &H3E07841CUI, &H7FDEAE5CUI, &H8E7D44ECUI, &H5716F2B8UI, &HB03ADA37UI, &HF0500C0DUI, _ &HF01C1F04UI, &H200B3FFUI, &HAE0CF51AUI, &H3CB574B2UI, &H25837A58UI, &HDC0921BDUI, _ &HD19113F9UI, &H7CA92FF6UI, &H94324773UI, &H22F54701UI, &H3AE5E581UI, &H37C2DADCUI, _ &HC8B57634UI, &H9AF3DDA7UI, &HA9446146UI, &HFD0030EUI, &HECC8C73EUI, &HA4751E41UI, _ &HE238CD99UI, &H3BEA0E2FUI, &H3280BBA1UI, &H183EB331UI, &H4E548B38UI, &H4F6DB908UI, _ &H6F420D03UI, &HF60A04BFUI, &H2CB81290UI, &H24977C79UI, &H5679B072UI, &HBCAF89AFUI, _ &HDE9A771FUI, &HD9930810UI, &HB38BAE12UI, &HDCCF3F2EUI, &H5512721FUI, &H2E6B7124UI, _ &H501ADDE6UI, &H9F84CD87UI, &H7A584718UI, &H7408DA17UI, &HBC9F9ABCUI, &HE94B7D8CUI, _ &HEC7AEC3AUI, &HDB851DFAUI, &H63094366UI, &HC464C3D2UI, &HEF1C1847UI, &H3215D908UI, _ &HDD433B37UI, &H24C2BA16UI, &H12A14D43UI, &H2A65C451UI, &H50940002UI, &H133AE4DDUI, _ &H71DFF89EUI, &H10314E55UI, &H81AC77D6UI, &H5F11199BUI, &H43556F1UI, &HD7A3C76BUI, _ &H3C11183BUI, &H5924A509UI, &HF28FE6EDUI, &H97F1FBFAUI, &H9EBABF2CUI, &H1E153C6EUI, _ &H86E34570UI, &HEAE96FB1UI, &H860E5E0AUI, &H5A3E2AB3UI, &H771FE71CUI, &H4E3D06FAUI, _ &H2965DCB9UI, &H99E71D0FUI, &H803E89D6UI, &H5266C825UI, &H2E4CC978UI, &H9C10B36AUI, _ &HC6150EBAUI, &H94E2EA78UI, &HA5FC3C53UI, &H1E0A2DF4UI, &HF2F74EA7UI, &H361D2B3DUI, _ &H1939260FUI, &H19C27960UI, &H5223A708UI, &HF71312B6UI, &HEBADFE6EUI, &HEAC31F66UI, _ &HE3BC4595UI, &HA67BC883UI, &HB17F37D1UI, &H18CFF28UI, &HC332DDEFUI, &HBE6C5AA5UI, _ &H65582185UI, &H68AB9802UI, &HEECEA50FUI, &HDB2F953BUI, &H2AEF7DADUI, &H5B6E2F84UI, _ &H1521B628UI, &H29076170UI, &HECDD4775UI, &H619F1510UI, &H13CCA830UI, &HEB61BD96UI, _ &H334FE1EUI, &HAA0363CFUI, &HB5735C90UI, &H4C70A239UI, &HD59E9E0BUI, &HCBAADE14UI, _ &HEECC86BCUI, &H60622CA7UI, &H9CAB5CABUI, &HB2F3846EUI, &H648B1EAFUI, &H19BDF0CAUI, _ &HA02369B9UI, &H655ABB50UI, &H40685A32UI, &H3C2AB4B3UI, &H319EE9D5UI, &HC021B8F7UI, _ &H9B540B19UI, &H875FA099UI, &H95F7997EUI, &H623D7DA8UI, &HF837889AUI, &H97E32D77UI, _ &H11ED935FUI, &H16681281UI, &HE358829UI, &HC7E61FD6UI, &H96DEDFA1UI, &H7858BA99UI, _ &H57F584A5UI, &H1B227263UI, &H9B83C3FFUI, &H1AC24696UI, &HCDB30AEBUI, &H532E3054UI, _ &H8FD948E4UI, &H6DBC3128UI, &H58EBF2EFUI, &H34C6FFEAUI, &HFE28ED61UI, &HEE7C3C73UI, _ &H5D4A14D9UI, &HE864B7E3UI, &H42105D14UI, &H203E13E0UI, &H45EEE2B6UI, &HA3AAABEAUI, _ &HDB6C4F15UI, &HFACB4FD0UI, &HC742F442UI, &HEF6ABBB5UI, &H654F3B1DUI, &H41CD2105UI, _ &HD81E799EUI, &H86854DC7UI, &HE44B476AUI, &H3D816250UI, &HCF62A1F2UI, &H5B8D2646UI, _ &HFC8883A0UI, &HC1C7B6A3UI, &H7F1524C3UI, &H69CB7492UI, &H47848A0BUI, &H5692B285UI, _ &H95BBF00UI, &HAD19489DUI, &H1462B174UI, &H23820E00UI, &H58428D2AUI, &HC55F5EAUI, _ &H1DADF43EUI, &H233F7061UI, &H3372F092UI, &H8D937E41UI, &HD65FECF1UI, &H6C223BDBUI, _ &H7CDE3759UI, &HCBEE7460UI, &H4085F2A7UI, &HCE77326EUI, &HA6078084UI, &H19F8509EUI, _ &HE8EFD855UI, &H61D99735UI, &HA969A7AAUI, &HC50C06C2UI, &H5A04ABFCUI, &H800BCADCUI, _ &H9E447A2EUI, &HC3453484UI, &HFDD56705UI, &HE1E9EC9UI, &HDB73DBD3UI, &H105588CDUI, _ &H675FDA79UI, &HE3674340UI, &HC5C43465UI, &H713E38D8UI, &H3D28F89EUI, &HF16DFF20UI, _ &H153E21E7UI, &H8FB03D4AUI, &HE6E39F2BUI, &HDB83ADF7UI}, _ {&HE93D5A68UI, &H948140F7UI, &HF64C261CUI, &H94692934UI, &H411520F7UI, &H7602D4F7UI, _ &HBCF46B2EUI, &HD4A20068UI, &HD4082471UI, &H3320F46AUI, &H43B7D4B7UI, &H500061AFUI, _ &H1E39F62EUI, &H97244546UI, &H14214F74UI, &HBF8B8840UI, &H4D95FC1DUI, &H96B591AFUI, _ &H70F4DDD3UI, &H66A02F45UI, &HBFBC09ECUI, &H3BD9785UI, &H7FAC6DD0UI, &H31CB8504UI, _ &H96EB27B3UI, &H55FD3941UI, &HDA2547E6UI, &HABCA0A9AUI, &H28507825UI, &H530429F4UI, _ &HA2C86DAUI, &HE9B66DFBUI, &H68DC1462UI, &HD7486900UI, &H680EC0A4UI, &H27A18DEEUI, _ &H4F3FFEA2UI, &HE887AD8CUI, &HB58CE006UI, &H7AF4D6B6UI, &HAACE1E7CUI, &HD3375FECUI, _ &HCE78A399UI, &H406B2A42UI, &H20FE9E35UI, &HD9F385B9UI, &HEE39D7ABUI, &H3B124E8BUI, _ &H1DC9FAF7UI, &H4B6D1856UI, &H26A36631UI, &HEAE397B2UI, &H3A6EFA74UI, &HDD5B4332UI, _ &H6841E7F7UI, &HCA7820FBUI, &HFB0AF54EUI, &HD8FEB397UI, &H454056ACUI, &HBA489527UI, _ &H55533A3AUI, &H20838D87UI, &HFE6BA9B7UI, &HD096954BUI, &H55A867BCUI, &HA1159A58UI, _ &HCCA92963UI, &H99E1DB33UI, &HA62A4A56UI, &H3F3125F9UI, &H5EF47E1CUI, &H9029317CUI, _ &HFDF8E802UI, &H4272F70UI, &H80BB155CUI, &H5282CE3UI, &H95C11548UI, &HE4C66D22UI, _ &H48C1133FUI, &HC70F86DCUI, &H7F9C9EEUI, &H41041F0FUI, &H404779A4UI, &H5D886E17UI, _ &H325F51EBUI, &HD59BC0D1UI, &HF2BCC18FUI, &H41113564UI, &H257B7834UI, &H602A9C60UI, _ &HDFF8E8A3UI, &H1F636C1BUI, &HE12B4C2UI, &H2E1329EUI, &HAF664FD1UI, &HCAD18115UI, _ &H6B2395E0UI, &H333E92E1UI, &H3B240B62UI, &HEEBEB922UI, &H85B2A20EUI, &HE6BA0D99UI, _ &HDE720C8CUI, &H2DA2F728UI, &HD0127845UI, &H95B794FDUI, &H647D0862UI, &HE7CCF5F0UI, _ &H5449A36FUI, &H877D48FAUI, &HC39DFD27UI, &HF33E8D1EUI, &HA476341UI, &H992EFF74UI, _ &H3A6F6EABUI, &HF4F8FD37UI, &HA812DC60UI, &HA1EBDDF8UI, &H991BE14CUI, &HDB6E6B0DUI, _ &HC67B5510UI, &H6D672C37UI, &H2765D43BUI, &HDCD0E804UI, &HF1290DC7UI, &HCC00FFA3UI, _ &HB5390F92UI, &H690FED0BUI, &H667B9FFBUI, &HCEDB7D9CUI, &HA091CF0BUI, &HD9155EA3UI, _ &HBB132F88UI, &H515BAD24UI, &H7B9479BFUI, &H763BD6EBUI, &H37392EB3UI, &HCC115979UI, _ &H8026E297UI, &HF42E312DUI, &H6842ADA7UI, &HC66A2B3BUI, &H12754CCCUI, &H782EF11CUI, _ &H6A124237UI, &HB79251E7UI, &H6A1BBE6UI, &H4BFB6350UI, &H1A6B1018UI, &H11CAEDFAUI, _ &H3D25BDD8UI, &HE2E1C3C9UI, &H44421659UI, &HA121386UI, &HD90CEC6EUI, &HD5ABEA2AUI, _ &H64AF674EUI, &HDA86A85FUI, &HBEBFE988UI, &H64E4C3FEUI, &H9DBC8057UI, &HF0F7C086UI, _ &H60787BF8UI, &H6003604DUI, &HD1FD8346UI, &HF6381FB0UI, &H7745AE04UI, &HD736FCCCUI, _ &H83426B33UI, &HF01EAB71UI, &HB0804187UI, &H3C005E5FUI, &H77A057BEUI, &HBDE8AE24UI, _ &H55464299UI, &HBF582E61UI, &H4E58F48FUI, &HF2DDFDA2UI, &HF474EF38UI, &H8789BDC2UI, _ &H5366F9C3UI, &HC8B38E74UI, &HB475F255UI, &H46FCD9B9UI, &H7AEB2661UI, &H8B1DDF84UI, _ &H846A0E79UI, &H915F95E2UI, &H466E598EUI, &H20B45770UI, &H8CD55591UI, &HC902DE4CUI, _ &HB90BACE1UI, &HBB8205D0UI, &H11A86248UI, &H7574A99EUI, &HB77F19B6UI, &HE0A9DC09UI, _ &H662D09A1UI, &HC4324633UI, &HE85A1F02UI, &H9F0BE8CUI, &H4A99A025UI, &H1D6EFE10UI, _ &H1AB93D1DUI, &HBA5A4DFUI, &HA186F20FUI, &H2868F169UI, &HDCB7DA83UI, &H573906FEUI, _ &HA1E2CE9BUI, &H4FCD7F52UI, &H50115E01UI, &HA70683FAUI, &HA002B5C4UI, &HDE6D027UI, _ &H9AF88C27UI, &H773F8641UI, &HC3604C06UI, &H61A806B5UI, &HF0177A28UI, &HC0F586E0UI, _ &H6058AAUI, &H30DC7D62UI, &H11E69ED7UI, &H2338EA63UI, &H53C2DD94UI, &HC2C21634UI, _ &HBBCBEE56UI, &H90BCB6DEUI, &HEBFC7DA1UI, &HCE591D76UI, &H6F05E409UI, &H4B7C0188UI, _ &H39720A3DUI, &H7C927C24UI, &H86E3725FUI, &H724D9DB9UI, &H1AC15BB4UI, &HD39EB8FCUI, _ &HED545578UI, &H8FCA5B5UI, &HD83D7CD3UI, &H4DAD0FC4UI, &H1E50EF5EUI, &HB161E6F8UI, _ &HA28514D9UI, &H6C51133CUI, &H6FD5C7E7UI, &H56E14EC4UI, &H362ABFCEUI, &HDDC6C837UI, _ &HD79A3234UI, &H92638212UI, &H670EFA8EUI, &H406000E0UI}, _ {&H3A39CE37UI, &HD3FAF5CFUI, &HABC27737UI, &H5AC52D1BUI, &H5CB0679EUI, &H4FA33742UI, _ &HD3822740UI, &H99BC9BBEUI, &HD5118E9DUI, &HBF0F7315UI, &HD62D1C7EUI, &HC700C47BUI, _ &HB78C1B6BUI, &H21A19045UI, &HB26EB1BEUI, &H6A366EB4UI, &H5748AB2FUI, &HBC946E79UI, _ &HC6A376D2UI, &H6549C2C8UI, &H530FF8EEUI, &H468DDE7DUI, &HD5730A1DUI, &H4CD04DC6UI, _ &H2939BBDBUI, &HA9BA4650UI, &HAC9526E8UI, &HBE5EE304UI, &HA1FAD5F0UI, &H6A2D519AUI, _ &H63EF8CE2UI, &H9A86EE22UI, &HC089C2B8UI, &H43242EF6UI, &HA51E03AAUI, &H9CF2D0A4UI, _ &H83C061BAUI, &H9BE96A4DUI, &H8FE51550UI, &HBA645BD6UI, &H2826A2F9UI, &HA73A3AE1UI, _ &H4BA99586UI, &HEF5562E9UI, &HC72FEFD3UI, &HF752F7DAUI, &H3F046F69UI, &H77FA0A59UI, _ &H80E4A915UI, &H87B08601UI, &H9B09E6ADUI, &H3B3EE593UI, &HE990FD5AUI, &H9E34D797UI, _ &H2CF0B7D9UI, &H22B8B51UI, &H96D5AC3AUI, &H17DA67DUI, &HD1CF3ED6UI, &H7C7D2D28UI, _ &H1F9F25CFUI, &HADF2B89BUI, &H5AD6B472UI, &H5A88F54CUI, &HE029AC71UI, &HE019A5E6UI, _ &H47B0ACFDUI, &HED93FA9BUI, &HE8D3C48DUI, &H283B57CCUI, &HF8D56629UI, &H79132E28UI, _ &H785F0191UI, &HED756055UI, &HF7960E44UI, &HE3D35E8CUI, &H15056DD4UI, &H88F46DBAUI, _ &H3A16125UI, &H564F0BDUI, &HC3EB9E15UI, &H3C9057A2UI, &H97271AECUI, &HA93A072AUI, _ &H1B3F6D9BUI, &H1E6321F5UI, &HF59C66FBUI, &H26DCF319UI, &H7533D928UI, &HB155FDF5UI, _ &H3563482UI, &H8ABA3CBBUI, &H28517711UI, &HC20AD9F8UI, &HABCC5167UI, &HCCAD925FUI, _ &H4DE81751UI, &H3830DC8EUI, &H379D5862UI, &H9320F991UI, &HEA7A90C2UI, &HFB3E7BCEUI, _ &H5121CE64UI, &H774FBE32UI, &HA8B6E37EUI, &HC3293D46UI, &H48DE5369UI, &H6413E680UI, _ &HA2AE0810UI, &HDD6DB224UI, &H69852DFDUI, &H9072166UI, &HB39A460AUI, &H6445C0DDUI, _ &H586CDECFUI, &H1C20C8AEUI, &H5BBEF7DDUI, &H1B588D40UI, &HCCD2017FUI, &H6BB4E3BBUI, _ &HDDA26A7EUI, &H3A59FF45UI, &H3E350A44UI, &HBCB4CDD5UI, &H72EACEA8UI, &HFA6484BBUI, _ &H8D6612AEUI, &HBF3C6F47UI, &HD29BE463UI, &H542F5D9EUI, &HAEC2771BUI, &HF64E6370UI, _ &H740E0D8DUI, &HE75B1357UI, &HF8721671UI, &HAF537D5DUI, &H4040CB08UI, &H4EB4E2CCUI, _ &H34D2466AUI, &H115AF84UI, &HE1B00428UI, &H95983A1DUI, &H6B89FB4UI, &HCE6EA048UI, _ &H6F3F3B82UI, &H3520AB82UI, &H11A1D4BUI, &H277227F8UI, &H611560B1UI, &HE7933FDCUI, _ &HBB3A792BUI, &H344525BDUI, &HA08839E1UI, &H51CE794BUI, &H2F32C9B7UI, &HA01FBAC9UI, _ &HE01CC87EUI, &HBCC7D1F6UI, &HCF0111C3UI, &HA1E8AAC7UI, &H1A908749UI, &HD44FBD9AUI, _ &HD0DADECBUI, &HD50ADA38UI, &H339C32AUI, &HC6913667UI, &H8DF9317CUI, &HE0B12B4FUI, _ &HF79E59B7UI, &H43F5BB3AUI, &HF2D519FFUI, &H27D9459CUI, &HBF97222CUI, &H15E6FC2AUI, _ &HF91FC71UI, &H9B941525UI, &HFAE59361UI, &HCEB69CEBUI, &HC2A86459UI, &H12BAA8D1UI, _ &HB6C1075EUI, &HE3056A0CUI, &H10D25065UI, &HCB03A442UI, &HE0EC6E0EUI, &H1698DB3BUI, _ &H4C98A0BEUI, &H3278E964UI, &H9F1F9532UI, &HE0D392DFUI, &HD3A0342BUI, &H8971F21EUI, _ &H1B0A7441UI, &H4BA3348CUI, &HC5BE7120UI, &HC37632D8UI, &HDF359F8DUI, &H9B992F2EUI, _ &HE60B6F47UI, &HFE3F11DUI, &HE54CDA54UI, &H1EDAD891UI, &HCE6279CFUI, &HCD3E7E6FUI, _ &H1618B166UI, &HFD2C1D05UI, &H848FD2C5UI, &HF6FB2299UI, &HF523F357UI, &HA6327623UI, _ &H93A83531UI, &H56CCCD02UI, &HACF08162UI, &H5A75EBB5UI, &H6E163697UI, &H88D273CCUI, _ &HDE966292UI, &H81B949D0UI, &H4C50901BUI, &H71C65614UI, &HE6C6C7BDUI, &H327A140AUI, _ &H45E1D006UI, &HC3F27B9AUI, &HC9AA53FDUI, &H62A80F00UI, &HBB25BFE2UI, &H35BDD2F6UI, _ &H71126905UI, &HB2040222UI, &HB6CBCF7CUI, &HCD769C2BUI, &H53113EC0UI, &H1640E3D3UI, _ &H38ABBD60UI, &H2547ADF0UI, &HBA38209CUI, &HF746CE76UI, &H77AFA1C5UI, &H20756060UI, _ &H85CBFE4EUI, &H8AE88DD8UI, &H7AAAF9B0UI, &H4CF9AA7EUI, &H1948C25CUI, &H2FB8A8CUI, _ &H1C36AE4UI, &HD6EBE1F9UI, &H90D4F869UI, &HA65CDEA0UI, &H3F09252DUI, &HC208E69FUI, _ &HB74E6132UI, &HCE77E25BUI, &H578FDFE3UI, &H3AC372E6UI}} Private P As UInteger() Private S As UInteger(,) Public Sub New(ByVal key As [Byte]()) P = TryCast(_P.Clone(), UInt32()) S = TryCast(_S.Clone(), UInt32(,)) Dim keyIndex As Int32 = 0 Dim keyLength As Int32 = key.Length For i As Int32 = 0 To P.Length - 1 Dim data As UInt32 = 0 For j As Int32 = 0 To 3 data = (data << 8) Or key(keyIndex) keyIndex = (keyIndex + 1) Mod keyLength Next P(i) = P(i) Xor data Next Dim dataL As UInt32 = 0 Dim dataR As UInt32 = 0 For i As Int32 = 0 To CInt(P.Length / 2 - 1) Encipher(dataL, dataR) P(i * 2) = dataL P(i * 2 + 1) = dataR Next For i As Int32 = 0 To S.GetLength(0) - 1 For j As Int32 = 0 To CInt(S.GetLength(1) / 2 - 1) Encipher(dataL, dataR) S(i, j * 2) = dataL S(i, j * 2 + 1) = dataR Next Next End Sub Private Sub Encipher(ByRef xL As UInt32, ByRef xR As UInt32) Dim xL_1 As UInt32 = xR Dim xR_1 As UInt32 = xL For i As Int32 = 0 To P.Length - 2 - 1 swap(xL_1, xR_1) xL_1 = xL_1 Xor P(i) xR_1 = F(xL_1) Xor xR_1 Next xR = xR_1 Xor P(P.Length - 2) xL = xL_1 Xor P(P.Length - 1) End Sub Private Sub Decipher(ByRef xL As UInt32, ByRef xR As UInt32) Dim xL_1 As UInt32 = xR Dim xR_1 As UInt32 = xL For i As Int32 = P.Length - 1 To 2 Step -1 swap(xL_1, xR_1) xL_1 = xL_1 Xor P(i) xR_1 = F(xL_1) Xor xR_1 Next xR = xR_1 Xor P(1) xL = xL_1 Xor P(0) End Sub Private Function F(ByVal x As UInteger) As UInteger Dim a As UShort Dim b As UShort Dim c As UShort Dim d As UShort Dim y As UInt64 d = CUShort((x And &HFF)) x >>= 8 c = CUShort((x And &HFF)) x >>= 8 b = CUShort((x And &HFF)) x >>= 8 a = CUShort((x And &HFF)) y = CType(S(0, a), UInt64) + S(1, b) y = CULng(y Mod (UInt32.MaxValue + 1)) y = y Xor S(2, c) y = y + S(3, d) y = CULng(y Mod (UInt32.MaxValue + 1)) Return CType(y, UInt32) End Function Private Shared Sub swap(ByRef x As UInt32, ByRef y As UInt32) x = x Xor y y = y Xor x x = x Xor y End Sub Public Function Encrypt(ByVal data As Byte()) As Byte() Dim padLength As Byte = CByte(8 - (data.Length Mod 8)) ReDim Preserve data(data.Length + padLength - 1) data(data.Length - 1) = padLength Dim i As Int32 = 0 While i < data.Length Dim xL As UInt32 = ((CType(data(i), UInt32) << 24) Or (CType(data(i + 1), UInt32) << 16) Or (CType(data(i + 2), UInt32) << 8) Or CType(data(i + 3), UInt32)) Dim xR As UInt32 = ((CType(data(i + 4), UInt32) << 24) Or (CType(data(i + 5), UInt32) << 16) Or (CType(data(i + 6), UInt32) << 8) Or CType(data(i + 7), UInt32)) Encipher(xL, xR) data(i + 0) = CByte((xL >> 24) Mod (Byte.MaxValue + 1)) data(i + 1) = CByte((xL >> 16) Mod (Byte.MaxValue + 1)) data(i + 2) = CByte((xL >> 8) Mod (Byte.MaxValue + 1)) data(i + 3) = CByte((xL >> 0) Mod (Byte.MaxValue + 1)) data(i + 4) = CByte((xR >> 24) Mod (Byte.MaxValue + 1)) data(i + 5) = CByte((xR >> 16) Mod (Byte.MaxValue + 1)) data(i + 6) = CByte((xR >> 8) Mod (Byte.MaxValue + 1)) data(i + 7) = CByte((xR >> 0) Mod (Byte.MaxValue + 1)) i += 8 End While Return data End Function Public Function Decrypt(ByVal data As Byte()) As Byte() If (data.Length Mod 8) <> 0 Then Throw New Exception("Data Length must be multiple of 8.") End If Dim i As Int32 = 0 While i < data.Length Dim xL As UInt32 = ((CType(data(i), UInt32) << 24) Or (CType(data(i + 1), UInt32) << 16) Or (CType(data(i + 2), UInt32) << 8) Or CType(data(i + 3), UInt32)) Dim xR As UInt32 = ((CType(data(i + 4), UInt32) << 24) Or (CType(data(i + 5), UInt32) << 16) Or (CType(data(i + 6), UInt32) << 8) Or CType(data(i + 7), UInt32)) Decipher(xL, xR) data(i + 0) = CByte((xL >> 24) Mod (Byte.MaxValue + 1)) data(i + 1) = CByte((xL >> 16) Mod (Byte.MaxValue + 1)) data(i + 2) = CByte((xL >> 8) Mod (Byte.MaxValue + 1)) data(i + 3) = CByte((xL >> 0) Mod (Byte.MaxValue + 1)) data(i + 4) = CByte((xR >> 24) Mod (Byte.MaxValue + 1)) data(i + 5) = CByte((xR >> 16) Mod (Byte.MaxValue + 1)) data(i + 6) = CByte((xR >> 8) Mod (Byte.MaxValue + 1)) data(i + 7) = CByte((xR >> 0) Mod (Byte.MaxValue + 1)) i += 8 End While 'ReDim Preserve data(data.Length - data(data.Length - 1) - 1) Return data End Function End Class
[Image: vzV2W]

Reply