Aktuelle Zeit: 23.10.2018 09:26

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: BlowFish.pbi
BeitragVerfasst: 14.04.2006 18:18 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
(7.9.2008)
Ich hab den Algo mal wieder gebraucht und so einige Performancebremsen rausgemacht.
Er sollte nun auch Unicode-tauglich sein und die Decrypt-Funktion gibt die tatsächliche Ursprungsgröße zurück (vorher immer auf teilbar durch 8 aufgerundet).


Code:
;/------------------------------
;|
;| BlowFish.pbi
;| (c)HeX0R 2006-2008
;|
;| Include File for
;| some BlowFish-Action.
;|
;| Needs PureBasic >= 4.0,
;| no Userlibrarys,
;| no Api
;| Should work with Demo also.
;|
;| Updated 5/2007
;| Now with Unicode-Support
;|
;| Updated 9/2008
;| Some performance enhancements
;|
;|
;/-------------------------------

Structure BLOWFISH
   K.l[18]
   S0.l[256]
   S1.l[256]
   S2.l[256]
   S3.l[256]
EndStructure

Structure BLOWFISHKEY
   b.b[16]
EndStructure

Structure BLOWFISHHELPER
   StructureUnion
      L.l[0]
      B.b[0]
   EndStructureUnion
EndStructure

#BlowFish_UseBase64 = $01
#BlowFish_UseCBC    = $02

Procedure.l BF_Internal_Sbox_Round(*L.BLOWFISHHELPER, *B.BLOWFISH)

   Protected Result.l

   Result = *B\S0[*L\B[3] & $FF] + *B\S1[*L\B[2] & $FF]
   Result ! *B\S2[*L\B[1] & $FF]
   Result + *B\S3[*L\B[0] & $FF]

   ProcedureReturn Result

EndProcedure


Procedure BF_Internal_Block_Encrypt(*vl.LONG, *vr.LONG, *B.BLOWFISH)

   Protected i.l

   While i < 16

      *vl\l ! *B\K[i]
      *vr\l ! BF_Internal_Sbox_Round(*vl, *B)
      Swap *vl\l, *vr\l
      i + 1
      
   Wend

   Swap *vl\l, *vr\l
   *vr\l ! *B\K[16]
   *vl\l ! *B\K[17]

EndProcedure

Procedure BF_Internal_Block_Decrypt(*vl.LONG, *vr.LONG, *B.BLOWFISH)

   Protected i.l = 17

   While i > 1

      *vl\l ! *B\K[i]
      *vr\l ! BF_Internal_Sbox_Round(*vl, *B)
      Swap *vl\l, *vr\l
      i - 1

   Wend

   Swap *vl\l, *vr\l
   *vr\l ! *B\K[1]
   *vl\l ! *B\K[0]

EndProcedure

Procedure BF_Internal_Cipher_Key(*key, keylen.l, *B.BLOWFISH)

   Protected key_md5.s, i.l, v0.l, v1.l, nkey.BLOWFISHKEY
   Dim MyKey.l(4)

   CopyMemory(?BLOWFISH_K, *B, 4168)
   
   key_md5 = MD5Fingerprint(*key, keylen)

   If keylen < 16
      CopyMemory(*key, @nkey\b[0], keylen)
      CopyMemory(@key_md5, @nkey\b[keylen], 16 - keylen)
   Else
      CopyMemory(*key, @nkey\b[0], 16)
   EndIf

   For i = 0 To 3
      MyKey(i) = PeekL(@nkey\b[i*4])
   Next i

   For i = 0 To 17
      *B\K[i] ! MyKey(i % 4)
   Next i

   For i = 0 To 16 Step 2
      BF_Internal_Block_Encrypt(@v0, @v1, *B)
      *B\K[i]   = v0
      *B\K[i+1] = v1
   Next i

   For i = 0 To 254 Step 2
      BF_Internal_Block_Encrypt(@v0, @v1, *B)
      *B\S0[i]   = v0
      *B\S0[i+1] = v1
   Next i

   For i = 0 To 254 Step 2
      BF_Internal_Block_Encrypt(@v0, @v1, *B)
      *B\S1[i]   = v0
      *B\S1[i+1] = v1
   Next i

   For i = 0 To 254 Step 2
      BF_Internal_Block_Encrypt(@v0, @v1, *B)
      *B\S2[i]   = v0
      *B\S2[i+1] = v1
   Next i

   For i = 0 To 254 Step 2
      BF_Internal_Block_Encrypt(@v0, @v1, *B)
      *B\S3[i]   = v0
      *B\S3[i+1] = v1
   Next i

EndProcedure


Procedure.l Blowfish_Crypt(*Source, SourceLength.l, *Password, PassLength.l, *Result, ResultLength.l, Mode.l = #BlowFish_UseBase64)

   Protected BF.BLOWFISH, *Buffer, i.l, a.l, P.l, b.l = 1, *T.BLOWFISHHELPER = AllocateMemory(SourceLength + 16), n.l
   Protected *S2

   BF_Internal_Cipher_Key(*Password, PassLength, @BF)
   
   If *T
      PokeQ(*T, SourceLength) ;<- Add real SourceLength
      CopyMemory(*Source, *T + 8, SourceLength)
      SourceLength + 8
      n = SourceLength

      *Buffer = AllocateMemory(SourceLength * 2)
      If *Buffer
         If n % 8
            n = 8 - (n % 8)
            CopyMemory(?BLOWFISH_HELPER, *T + SourceLength, n)
            SourceLength + n
         EndIf

         n = SourceLength / 4

         Dim Cipher.l(n + 2)

         If Mode & #BlowFish_UseCBC
            Cipher(0) = Date();
            Cipher(1) = ElapsedMilliseconds() * 1000000
            P = 2
         EndIf

         If n*8 <= ResultLength
            For i = 0 To n - 1 Step 2

               If Mode & #BlowFish_UseCBC
                  *T\L[i]   ! Cipher(b - 1)
                  *T\L[i+1] ! Cipher(b)
               EndIf

               Cipher(i+P)   = *T\L[i]
               Cipher(i+P+1) = *T\L[i+1]
               BF_Internal_Block_Encrypt(@Cipher(i + P), @Cipher(i + P + 1), @BF)
               b + 2
            Next i

            a = 0
            b = n + P
            i = 0
            While i < b
               PokeL(*Buffer + a, Cipher(i))
               PokeL(*Buffer + a + 4, Cipher(i + 1))
               a + 8
               i + 2
            Wend

            If Mode & #BlowFish_UseBase64
               Base64Encoder(*Buffer, a, *Result, ResultLength)
               a = MemoryStringLength(*Result) * SizeOf(CHARACTER)
            Else
               CopyMemory(*Buffer, *Result, a)
            EndIf
         EndIf
         FreeMemory(*Buffer)
      EndIf
      FreeMemory(*T)
   EndIf

   ProcedureReturn a

EndProcedure

Procedure.l Blowfish_Decrypt(*Source, SourceLength.l, *Password, PassLength.l, *Result, ResultLength.l, Mode.l = #BlowFish_UseBase64)

   Protected BF.BLOWFISH, n.l, i.l, a.l, j.l, K1.l, K2.l, *Buffer.BLOWFISHHELPER

   BF_Internal_Cipher_Key(*Password, PassLength, @BF)

   *Buffer = AllocateMemory(SourceLength * 2 + 78)
   If *Buffer
      If Mode & #BlowFish_UseBase64
         SourceLength = Base64Decoder(*Source, SourceLength, *Buffer, SourceLength * 2 + 78)
      Else
         CopyMemory(*Source, *Buffer, SourceLength)
      EndIf
      n = SourceLength / 4

      Dim L.l(n)

      If Mode & #BlowFish_UseCBC
         j = 2
      EndIf

      a = 0
      If n*8 <= ResultLength
         For i = j To n - 1 Step 2
            K1 = *Buffer\L[i]
            K2 = *Buffer\L[i+1]
            BF_Internal_Block_Decrypt(@K1, @K2, @BF)
            If Mode & #BlowFish_UseCBC
               L(i-j)   = K1 ! *Buffer\L[i-2]
               L(i+1-j) = K2 ! *Buffer\L[i-1]
            Else
               L(i-j)   = K1
               L(i+1-j) = K2
            EndIf
         Next i
         a = Round((n - 1 - j) / 2, 1) * 8
         CopyMemory(@L() + 8, *Result, a - 8)
         a = PeekQ(@L()) ;<- Get real Size
      EndIf
      FreeMemory(*Buffer)
   EndIf
   
   ProcedureReturn a
EndProcedure

DataSection
   BLOWFISH_K:
   Data.l $243F6A88, $85A308D3, $13198A2E, $03707344, $A4093822, $299F31D0, $082EFA98, $EC4E6C89
   Data.l $452821E6, $38D01377, $BE5466CF, $34E90C6C, $C0AC29B7, $C97C50DD, $3F84D5B5, $B5470917
   Data.l $9216D5D9, $8979FB1B, 0, 0

   ;S0:
   Data.l $D1310BA6, $98DFB5AC, $2FFD72DB, $D01ADFB7, $B8E1AFED, $6A267E96, $BA7C9045, $F12C7F99
   Data.l $24A19947, $B3916CF7, $0801F2E2, $858EFC16, $636920D8, $71574E69, $A458FEA3, $F4933D7E
   Data.l $0D95748F, $728EB658, $718BCD58, $82154AEE, $7B54A41D, $C25A59B5, $9C30D539, $2AF26013
   Data.l $C5D1B023, $286085F0, $CA417918, $B8DB38EF, $8E79DCB0, $603A180E, $6C9E0E8B, $B01E8A3E
   Data.l $D71577C1, $BD314B27, $78AF2FDA, $55605C60, $E65525F3, $AA55AB94, $57489862, $63E81440
   Data.l $55CA396A, $2AAB10B6, $B4CC5C34, $1141E8CE, $A15486AF, $7C72E993, $B3EE1411, $636FBC2A
   Data.l $2BA9C55D, $741831F6, $CE5C3E16, $9B87931E, $AFD6BA33, $6C24CF5C, $7A325381, $28958677
   Data.l $3B8F4898, $6B4BB9AF, $C4BFE81B, $66282193, $61D809CC, $FB21A991, $487CAC60, $5DEC8032
   Data.l $EF845D5D, $E98575B1, $DC262302, $EB651B88, $23893E81, $D396ACC5, $0F6D6FF3, $83F44239
   Data.l $2E0B4482, $A4842004, $69C8F04A, $9E1F9B5E, $21C66842, $F6E96C9A, $670C9C61, $ABD388F0
   Data.l $6A51A0D2, $D8542F68, $960FA728, $AB5133A3, $6EEF0B6C, $137A3BE4, $BA3BF050, $7EFB2A98
   Data.l $A1F1651D, $39AF0176, $66CA593E, $82430E88, $8CEE8619, $456F9FB4, $7D84A5C3, $3B8B5EBE
   Data.l $E06F75D8, $85C12073, $401A449F, $56C16AA6, $4ED3AA62, $363F7706, $1BFEDF72, $429B023D
   Data.l $37D0D724, $D00A1248, $DB0FEAD3, $49F1C09B, $075372C9, $80991B7B, $25D479D8, $F6E8DEF7
   Data.l $E3FE501A, $B6794C3B, $976CE0BD, $04C006BA, $C1A94FB6, $409F60C4, $5E5C9EC2, $196A2463
   Data.l $68FB6FAF, $3E6C53B5, $1339B2EB, $3B52EC6F, $6DFC511F, $9B30952C, $CC814544, $AF5EBD09
   Data.l $BEE3D004, $DE334AFD, $660F2807, $192E4BB3, $C0CBA857, $45C8740F, $D20B5F39, $B9D3FBDB
   Data.l $5579C0BD, $1A60320A, $D6A100C6, $402C7279, $679F25FE, $FB1FA3CC, $8EA5E9F8, $DB3222F8
   Data.l $3C7516DF, $FD616B15, $2F501EC8, $AD0552AB, $323DB5FA, $FD238760, $53317B48, $3E00DF82
   Data.l $9E5C57BB, $CA6F8CA0, $1A87562E, $DF1769DB, $D542A8F6, $287EFFC3, $AC6732C6, $8C4F5573
   Data.l $695B27B0, $BBCA58C8, $E1FFA35D, $B8F011A0, $10FA3D98, $FD2183B8, $4AFCB56C, $2DD1D35B
   Data.l $9A53E479, $B6F84565, $D28E49BC, $4BFB9790, $E1DDF2DA, $A4CB7E33, $62FB1341, $CEE4C6E8
   Data.l $EF20CADA, $36774C01, $D07E9EFE, $2BF11FB4, $95DBDA4D, $AE909198, $EAAD8E71, $6B93D5A0
   Data.l $D08ED1D0, $AFC725E0, $8E3C5B2F, $8E7594B7, $8FF6E2FB, $F2122B64, $8888B812, $900DF01C
   Data.l $4FAD5EA0, $688FC31C, $D1CFF191, $B3A8C1AD, $2F2F2218, $BE0E1777, $EA752DFE, $8B021FA1
   Data.l $E5A0CC0F, $B56F74E8, $18ACF3D6, $CE89E299, $B4A84FE0, $FD13E0B7, $7CC43B81, $D2ADA8D9
   Data.l $165FA266, $80957705, $93CC7314, $211A1477, $E6AD2065, $77B5FA86, $C75442F5, $FB9D35CF
   Data.l $EBCDAF0C, $7B3E89A0, $D6411BD3, $AE1E7E49, $00250E2D, $2071B35E, $226800BB, $57B8E0AF
   Data.l $2464369B, $F009B91E, $5563911D, $59DFA6AA, $78C14389, $D95A537F, $207D5BA2, $02E5B9C5
   Data.l $83260376, $6295CFA9, $11C81968, $4E734A41, $B3472DCA, $7B14A94A, $1B510052, $9A532915
   Data.l $D60F573F, $BC9BC6E4, $2B60A476, $81E67400, $08BA6FB5, $571BE91F, $F296EC6B, $2A0DD915
   Data.l $B6636521, $E7B9F9B6, $FF34052E, $C5855664, $53B02D5D, $A99F8FA1, $08BA4799, $6E85076A

   ;S1:
   Data.l $4B7A70E9, $B5B32944, $DB75092E, $C4192623, $AD6EA6B0, $49A7DF7D, $9CEE60B8, $8FEDB266
   Data.l $ECAA8C71, $699A17FF, $5664526C, $C2B19EE1, $193602A5, $75094C29, $A0591340, $E4183A3E
   Data.l $3F54989A, $5B429D65, $6B8FE4D6, $99F73FD6, $A1D29C07, $EFE830F5, $4D2D38E6, $F0255DC1
   Data.l $4CDD2086, $8470EB26, $6382E9C6, $021ECC5E, $09686B3F, $3EBAEFC9, $3C971814, $6B6A70A1
   Data.l $687F3584, $52A0E286, $B79C5305, $AA500737, $3E07841C, $7FDEAE5C, $8E7D44EC, $5716F2B8
   Data.l $B03ADA37, $F0500C0D, $F01C1F04, $0200B3FF, $AE0CF51A, $3CB574B2, $25837A58, $DC0921BD
   Data.l $D19113F9, $7CA92FF6, $94324773, $22F54701, $3AE5E581, $37C2DADC, $C8B57634, $9AF3DDA7
   Data.l $A9446146, $0FD0030E, $ECC8C73E, $A4751E41, $E238CD99, $3BEA0E2F, $3280BBA1, $183EB331
   Data.l $4E548B38, $4F6DB908, $6F420D03, $F60A04BF, $2CB81290, $24977C79, $5679B072, $BCAF89AF
   Data.l $DE9A771F, $D9930810, $B38BAE12, $DCCF3F2E, $5512721F, $2E6B7124, $501ADDE6, $9F84CD87
   Data.l $7A584718, $7408DA17, $BC9F9ABC, $E94B7D8C, $EC7AEC3A, $DB851DFA, $63094366, $C464C3D2
   Data.l $EF1C1847, $3215D908, $DD433B37, $24C2BA16, $12A14D43, $2A65C451, $50940002, $133AE4DD
   Data.l $71DFF89E, $10314E55, $81AC77D6, $5F11199B, $043556F1, $D7A3C76B, $3C11183B, $5924A509
   Data.l $F28FE6ED, $97F1FBFA, $9EBABF2C, $1E153C6E, $86E34570, $EAE96FB1, $860E5E0A, $5A3E2AB3
   Data.l $771FE71C, $4E3D06FA, $2965DCB9, $99E71D0F, $803E89D6, $5266C825, $2E4CC978, $9C10B36A
   Data.l $C6150EBA, $94E2EA78, $A5FC3C53, $1E0A2DF4, $F2F74EA7, $361D2B3D, $1939260F, $19C27960
   Data.l $5223A708, $F71312B6, $EBADFE6E, $EAC31F66, $E3BC4595, $A67BC883, $B17F37D1, $018CFF28
   Data.l $C332DDEF, $BE6C5AA5, $65582185, $68AB9802, $EECEA50F, $DB2F953B, $2AEF7DAD, $5B6E2F84
   Data.l $1521B628, $29076170, $ECDD4775, $619F1510, $13CCA830, $EB61BD96, $0334FE1E, $AA0363CF
   Data.l $B5735C90, $4C70A239, $D59E9E0B, $CBAADE14, $EECC86BC, $60622CA7, $9CAB5CAB, $B2F3846E
   Data.l $648B1EAF, $19BDF0CA, $A02369B9, $655ABB50, $40685A32, $3C2AB4B3, $319EE9D5, $C021B8F7
   Data.l $9B540B19, $875FA099, $95F7997E, $623D7DA8, $F837889A, $97E32D77, $11ED935F, $16681281
   Data.l $0E358829, $C7E61FD6, $96DEDFA1, $7858BA99, $57F584A5, $1B227263, $9B83C3FF, $1AC24696
   Data.l $CDB30AEB, $532E3054, $8FD948E4, $6DBC3128, $58EBF2EF, $34C6FFEA, $FE28ED61, $EE7C3C73
   Data.l $5D4A14D9, $E864B7E3, $42105D14, $203E13E0, $45EEE2B6, $A3AAABEA, $DB6C4F15, $FACB4FD0
   Data.l $C742F442, $EF6ABBB5, $654F3B1D, $41CD2105, $D81E799E, $86854DC7, $E44B476A, $3D816250
   Data.l $CF62A1F2, $5B8D2646, $FC8883A0, $C1C7B6A3, $7F1524C3, $69CB7492, $47848A0B, $5692B285
   Data.l $095BBF00, $AD19489D, $1462B174, $23820E00, $58428D2A, $0C55F5EA, $1DADF43E, $233F7061
   Data.l $3372F092, $8D937E41, $D65FECF1, $6C223BDB, $7CDE3759, $CBEE7460, $4085F2A7, $CE77326E
   Data.l $A6078084, $19F8509E, $E8EFD855, $61D99735, $A969A7AA, $C50C06C2, $5A04ABFC, $800BCADC
   Data.l $9E447A2E, $C3453484, $FDD56705, $0E1E9EC9, $DB73DBD3, $105588CD, $675FDA79, $E3674340
   Data.l $C5C43465, $713E38D8, $3D28F89E, $F16DFF20, $153E21E7, $8FB03D4A, $E6E39F2B, $DB83ADF7

   ;S2:
   Data.l $E93D5A68, $948140F7, $F64C261C, $94692934, $411520F7, $7602D4F7, $BCF46B2E, $D4A20068
   Data.l $D4082471, $3320F46A, $43B7D4B7, $500061AF, $1E39F62E, $97244546, $14214F74, $BF8B8840
   Data.l $4D95FC1D, $96B591AF, $70F4DDD3, $66A02F45, $BFBC09EC, $03BD9785, $7FAC6DD0, $31CB8504
   Data.l $96EB27B3, $55FD3941, $DA2547E6, $ABCA0A9A, $28507825, $530429F4, $0A2C86DA, $E9B66DFB
   Data.l $68DC1462, $D7486900, $680EC0A4, $27A18DEE, $4F3FFEA2, $E887AD8C, $B58CE006, $7AF4D6B6
   Data.l $AACE1E7C, $D3375FEC, $CE78A399, $406B2A42, $20FE9E35, $D9F385B9, $EE39D7AB, $3B124E8B
   Data.l $1DC9FAF7, $4B6D1856, $26A36631, $EAE397B2, $3A6EFA74, $DD5B4332, $6841E7F7, $CA7820FB
   Data.l $FB0AF54E, $D8FEB397, $454056AC, $BA489527, $55533A3A, $20838D87, $FE6BA9B7, $D096954B
   Data.l $55A867BC, $A1159A58, $CCA92963, $99E1DB33, $A62A4A56, $3F3125F9, $5EF47E1C, $9029317C
   Data.l $FDF8E802, $04272F70, $80BB155C, $05282CE3, $95C11548, $E4C66D22, $48C1133F, $C70F86DC
   Data.l $07F9C9EE, $41041F0F, $404779A4, $5D886E17, $325F51EB, $D59BC0D1, $F2BCC18F, $41113564
   Data.l $257B7834, $602A9C60, $DFF8E8A3, $1F636C1B, $0E12B4C2, $02E1329E, $AF664FD1, $CAD18115
   Data.l $6B2395E0, $333E92E1, $3B240B62, $EEBEB922, $85B2A20E, $E6BA0D99, $DE720C8C, $2DA2F728
   Data.l $D0127845, $95B794FD, $647D0862, $E7CCF5F0, $5449A36F, $877D48FA, $C39DFD27, $F33E8D1E
   Data.l $0A476341, $992EFF74, $3A6F6EAB, $F4F8FD37, $A812DC60, $A1EBDDF8, $991BE14C, $DB6E6B0D
   Data.l $C67B5510, $6D672C37, $2765D43B, $DCD0E804, $F1290DC7, $CC00FFA3, $B5390F92, $690FED0B
   Data.l $667B9FFB, $CEDB7D9C, $A091CF0B, $D9155EA3, $BB132F88, $515BAD24, $7B9479BF, $763BD6EB
   Data.l $37392EB3, $CC115979, $8026E297, $F42E312D, $6842ADA7, $C66A2B3B, $12754CCC, $782EF11C
   Data.l $6A124237, $B79251E7, $06A1BBE6, $4BFB6350, $1A6B1018, $11CAEDFA, $3D25BDD8, $E2E1C3C9
   Data.l $44421659, $0A121386, $D90CEC6E, $D5ABEA2A, $64AF674E, $DA86A85F, $BEBFE988, $64E4C3FE
   Data.l $9DBC8057, $F0F7C086, $60787BF8, $6003604D, $D1FD8346, $F6381FB0, $7745AE04, $D736FCCC
   Data.l $83426B33, $F01EAB71, $B0804187, $3C005E5F, $77A057BE, $BDE8AE24, $55464299, $BF582E61
   Data.l $4E58F48F, $F2DDFDA2, $F474EF38, $8789BDC2, $5366F9C3, $C8B38E74, $B475F255, $46FCD9B9
   Data.l $7AEB2661, $8B1DDF84, $846A0E79, $915F95E2, $466E598E, $20B45770, $8CD55591, $C902DE4C
   Data.l $B90BACE1, $BB8205D0, $11A86248, $7574A99E, $B77F19B6, $E0A9DC09, $662D09A1, $C4324633
   Data.l $E85A1F02, $09F0BE8C, $4A99A025, $1D6EFE10, $1AB93D1D, $0BA5A4DF, $A186F20F, $2868F169
   Data.l $DCB7DA83, $573906FE, $A1E2CE9B, $4FCD7F52, $50115E01, $A70683FA, $A002B5C4, $0DE6D027
   Data.l $9AF88C27, $773F8641, $C3604C06, $61A806B5, $F0177A28, $C0F586E0, $006058AA, $30DC7D62
   Data.l $11E69ED7, $2338EA63, $53C2DD94, $C2C21634, $BBCBEE56, $90BCB6DE, $EBFC7DA1, $CE591D76
   Data.l $6F05E409, $4B7C0188, $39720A3D, $7C927C24, $86E3725F, $724D9DB9, $1AC15BB4, $D39EB8FC
   Data.l $ED545578, $08FCA5B5, $D83D7CD3, $4DAD0FC4, $1E50EF5E, $B161E6F8, $A28514D9, $6C51133C
   Data.l $6FD5C7E7, $56E14EC4, $362ABFCE, $DDC6C837, $D79A3234, $92638212, $670EFA8E, $406000E0

   ;S3:
   Data.l $3A39CE37, $D3FAF5CF, $ABC27737, $5AC52D1B, $5CB0679E, $4FA33742, $D3822740, $99BC9BBE
   Data.l $D5118E9D, $BF0F7315, $D62D1C7E, $C700C47B, $B78C1B6B, $21A19045, $B26EB1BE, $6A366EB4
   Data.l $5748AB2F, $BC946E79, $C6A376D2, $6549C2C8, $530FF8EE, $468DDE7D, $D5730A1D, $4CD04DC6
   Data.l $2939BBDB, $A9BA4650, $AC9526E8, $BE5EE304, $A1FAD5F0, $6A2D519A, $63EF8CE2, $9A86EE22
   Data.l $C089C2B8, $43242EF6, $A51E03AA, $9CF2D0A4, $83C061BA, $9BE96A4D, $8FE51550, $BA645BD6
   Data.l $2826A2F9, $A73A3AE1, $4BA99586, $EF5562E9, $C72FEFD3, $F752F7DA, $3F046F69, $77FA0A59
   Data.l $80E4A915, $87B08601, $9B09E6AD, $3B3EE593, $E990FD5A, $9E34D797, $2CF0B7D9, $022B8B51
   Data.l $96D5AC3A, $017DA67D, $D1CF3ED6, $7C7D2D28, $1F9F25CF, $ADF2B89B, $5AD6B472, $5A88F54C
   Data.l $E029AC71, $E019A5E6, $47B0ACFD, $ED93FA9B, $E8D3C48D, $283B57CC, $F8D56629, $79132E28
   Data.l $785F0191, $ED756055, $F7960E44, $E3D35E8C, $15056DD4, $88F46DBA, $03A16125, $0564F0BD
   Data.l $C3EB9E15, $3C9057A2, $97271AEC, $A93A072A, $1B3F6D9B, $1E6321F5, $F59C66FB, $26DCF319
   Data.l $7533D928, $B155FDF5, $03563482, $8ABA3CBB, $28517711, $C20AD9F8, $ABCC5167, $CCAD925F
   Data.l $4DE81751, $3830DC8E, $379D5862, $9320F991, $EA7A90C2, $FB3E7BCE, $5121CE64, $774FBE32
   Data.l $A8B6E37E, $C3293D46, $48DE5369, $6413E680, $A2AE0810, $DD6DB224, $69852DFD, $09072166
   Data.l $B39A460A, $6445C0DD, $586CDECF, $1C20C8AE, $5BBEF7DD, $1B588D40, $CCD2017F, $6BB4E3BB
   Data.l $DDA26A7E, $3A59FF45, $3E350A44, $BCB4CDD5, $72EACEA8, $FA6484BB, $8D6612AE, $BF3C6F47
   Data.l $D29BE463, $542F5D9E, $AEC2771B, $F64E6370, $740E0D8D, $E75B1357, $F8721671, $AF537D5D
   Data.l $4040CB08, $4EB4E2CC, $34D2466A, $0115AF84, $E1B00428, $95983A1D, $06B89FB4, $CE6EA048
   Data.l $6F3F3B82, $3520AB82, $011A1D4B, $277227F8, $611560B1, $E7933FDC, $BB3A792B, $344525BD
   Data.l $A08839E1, $51CE794B, $2F32C9B7, $A01FBAC9, $E01CC87E, $BCC7D1F6, $CF0111C3, $A1E8AAC7
   Data.l $1A908749, $D44FBD9A, $D0DADECB, $D50ADA38, $0339C32A, $C6913667, $8DF9317C, $E0B12B4F
   Data.l $F79E59B7, $43F5BB3A, $F2D519FF, $27D9459C, $BF97222C, $15E6FC2A, $0F91FC71, $9B941525
   Data.l $FAE59361, $CEB69CEB, $C2A86459, $12BAA8D1, $B6C1075E, $E3056A0C, $10D25065, $CB03A442
   Data.l $E0EC6E0E, $1698DB3B, $4C98A0BE, $3278E964, $9F1F9532, $E0D392DF, $D3A0342B, $8971F21E
   Data.l $1B0A7441, $4BA3348C, $C5BE7120, $C37632D8, $DF359F8D, $9B992F2E, $E60B6F47, $0FE3F11D
   Data.l $E54CDA54, $1EDAD891, $CE6279CF, $CD3E7E6F, $1618B166, $FD2C1D05, $848FD2C5, $F6FB2299
   Data.l $F523F357, $A6327623, $93A83531, $56CCCD02, $ACF08162, $5A75EBB5, $6E163697, $88D273CC
   Data.l $DE966292, $81B949D0, $4C50901B, $71C65614, $E6C6C7BD, $327A140A, $45E1D006, $C3F27B9A
   Data.l $C9AA53FD, $62A80F00, $BB25BFE2, $35BDD2F6, $71126905, $B2040222, $B6CBCF7C, $CD769C2B
   Data.l $53113EC0, $1640E3D3, $38ABBD60, $2547ADF0, $BA38209C, $F746CE76, $77AFA1C5, $20756060
   Data.l $85CBFE4E, $8AE88DD8, $7AAAF9B0, $4CF9AA7E, $1948C25C, $02FB8A8C, $01C36AE4, $D6EBE1F9
   Data.l $90D4F869, $A65CDEA0, $3F09252D, $C208E69F, $B74E6132, $CE77E25B, $578FDFE3, $3AC372E6
   
   ;Dummys
   BLOWFISH_HELPER:
   Data.b 32, 32, 32, 32, 32, 32, 32, 32
EndDataSection


Beispiel:
Code:
IncludeFile "BlowFish.pbi"

;Example
text_to_encrypt$         = "Now we are checking if this stupid code will really work ...¿"
password_for_encryption$ = "0815"
Result$                  = Space(1024)
Flags.l                  = #BlowFish_UseCBC | #BlowFish_UseBase64
;#BlowFish_UseCBC    = Will always produce a different encrypted Text(or Memoryblock)
;#BlowFish_UseBase64 = Will encrypt the result in base64.

Length = Blowfish_Crypt(@text_to_encrypt$, StringByteLength(text_to_encrypt$), @password_for_encryption$, StringByteLength(password_for_encryption$), @Result$, StringByteLength(Result$), Flags)

If Length
   Debug Length
   Debug Result$

   text_to_decrypt$ = Result$
   Result$          = Space(1024)
   Length = Blowfish_Decrypt(@text_to_decrypt$, Length, @password_for_encryption$, StringByteLength(password_for_encryption$), @Result$, StringByteLength(Result$), Flags)
   If Length
      Debug Left(Result$, Length / SizeOf(CHARACTER))
   EndIf
EndIf

End


//Edit(1)
Enable/DisableExplicit entfernt

//Edit(2)
Siehe oben

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Zuletzt geändert von HeX0R am 07.09.2008 23:38, insgesamt 3-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2006 18:34 
Offline

Registriert: 10.11.2004 03:22
ist es jetzt mode, codes ohne jeglichen kommentar ins forum zu stellen?

es verlangt ja keiner, dass man ne umfangreiche dokumentation liefert, wir sind ja hier nich auffer uni....

und natürlich kann man an dem beispiel sehen, dass es um nen codierer geht....

und natürlich könnte man wiki und google bemühen, um mehr über "blowfish" zu erfahren...

...aber tut das not?

mehr als ein einziges Wort außerhalb der code-tags würde ich schon erwarten.

_________________
... machts gut und danke für den fisch ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2006 18:38 
Offline
Benutzeravatar

Registriert: 01.10.2005 13:15
Das macht er öfter so... (nicht böse gemeint) hast du das nicht schon gemerkt?

_________________
PB 4.30
Code:
Macro Happy
 ;-)
EndMacro

Happy End


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2006 18:46 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
In diesem Board wird ohnehin viel zu viel gelabert.

Wer auf der Suche nach nem Blowfish-Algo ist, wird in der Suche Blowfish eingeben und die Include-Datei finden.

Das ist Sinn und Zweck dieser Code-Schnippsel-Ecke, oder etwa nicht ?

Wenn ich nen Blowfish-Algo suche, will ich mich nicht erst durch nen Wust an Larifari-Gelaber kämpfen, um am Ende festzustellen, dass nix darüber drinsteht.

Wer nicht weiss, was Blowfish ist, braucht diesen Thread erst gar nicht anzuklicken, oder aber er stellt die entsprechenden Fragen.

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2006 19:09 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Das EnableExplicit und DisableExplicit finde ich für Include-Dateien nicht so
praktisch. Zwar sollte die Include mit EnableExplicit entwickelt werden, aber
dies sollte man am Ende entfernen.
So müßte man nach dem Includieren wieder EnableExplicit angeben, weil
die Inlcude es ausschaltet. Naja nur so am Rande :wink:

Ansonsten sehr nützlich :allright:

_________________
PureBasic 5.70 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 19.0 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.04.2006 19:50 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Funzt nicht mit UTF-8
Debugger hat geschrieben:
96
2fw/RMArlsVtMfmX+AoK+5DU9yL/KMGONJsnz/cEq9069Y6CAz/Pii7Blwwk3z2MWk75LBhejmlI/TNJqQYKTzjgoDG1rQJA
64
Now we are checking if this stupid code will really work ¿
Siehe letzte Zeile!

_________________
PureBasic 5.70 | SpiderBasic 2.10 | Windows 10 Pro (x64) | Linux Mint 19.0 (x64)
"Ich möchte gerne die Welt verändern, doch Gott gibt den Quellcode nicht frei."
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2006 10:09 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Jau, stimmt.
Zu meiner Schande muss ich gestehen, dass ich die neuen UTF8-Funktionen von PB4 bis jetzt noch überhaupt nicht ins Auge gefasst hab.

Werde ich bei Gelegenheit mal machen (müssen), aber nicht so bald, weil ich ne Woche auf Montage muss.

Der Einwurf mit EnableExplicit ist völlig richtig, das hab ich nicht bedacht.
(Wird sofort behoben)

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2006 13:29 
Offline
Moderator
Benutzeravatar

Registriert: 11.09.2004 13:09
@ HeXOR

Ich sehe das aber ähnlich. Ne kleine anmerkung was Blowfish-Algo ist und was man damit machen kann wäre ganz nett denn einfach nur nen code posten sagt keinem was. Ich selber habe noch nie was von nem Blowfish-Algo gehört also klär mich auf was macht das ding???

Nico

_________________
SkyBeat Piloten und ATC Informationssystem


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2006 13:58 
Offline
Benutzeravatar

Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0
Blowfish ist eine sehr starke und vorallem schnelle Verschlüselung. AES und 3DES sind zwar ein Fünkchen sicherer (besonders 3DES), aber wesentlich langsamer.

Wikieintrag über Blowfish: http://de.wikipedia.org/wiki/Blowfish

_________________
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 20.05.2006 13:58 
Offline

Registriert: 05.10.2004 14:43
@HeXOR: Ich stimme Dir in vollem Umfang zu. DANKE für das Include... Sowas suche ich schon länger.

_________________
http://www.cornycountry.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye