📄 blowfish.inc
字号:
dd 2006996926, 3186142756, 1430667929, 3210227297
dd 1314452623, 4074634658, 4101304120, 2273951170
dd 1399257539, 3367210612, 3027628629, 1190975929
dd 2062231137, 2333990788, 2221543033, 2438960610
dd 1181637006, 548689776, 2362791313, 3372408396
dd 3104550113, 3145860560, 296247880, 1970579870
dd 3078560182, 3769228297, 1714227617, 3291629107
dd 3898220290, 166772364, 1251581989, 493813264
dd 448347421, 195405023, 2709975567, 677966185
dd 3703036547, 1463355134, 2715995803, 1338867538
dd 1343315457, 2802222074, 2684532164, 233230375
dd 2599980071, 2000651841, 3277868038, 1638401717
dd 4028070440, 3237316320, 6314154, 819756386
dd 300326615, 590932579, 1405279636, 3267499572
dd 3150704214, 2428286686, 3959192993, 3461946742
dd 1862657033, 1266418056, 963775037, 2089974820
dd 2263052895, 1917689273, 448879540, 3550394620
dd 3981727096, 150775221, 3627908307, 1303187396
dd 508620638, 2975983352, 2726630617, 1817252668
dd 1876281319, 1457606340, 908771278, 3720792119
dd 3617206836, 2455994898, 1729034894, 1080033504
blowfishsbox4 dd 976866871, 3556439503, 2881648439, 1522871579
dd 1555064734, 1336096578, 3548522304, 2579274686
dd 3574697629, 3205460757, 3593280638, 3338716283
dd 3079412587, 564236357, 2993598910, 1781952180
dd 1464380207, 3163844217, 3332601554, 1699332808
dd 1393555694, 1183702653, 3581086237, 1288719814
dd 691649499, 2847557200, 2895455976, 3193889540
dd 2717570544, 1781354906, 1676643554, 2592534050
dd 3230253752, 1126444790, 2770207658, 2633158820
dd 2210423226, 2615765581, 2414155088, 3127139286
dd 673620729, 2805611233, 1269405062, 4015350505
dd 3341807571, 4149409754, 1057255273, 2012875353
dd 2162469141, 2276492801, 2601117357, 993977747
dd 3918593370, 2654263191, 753973209, 36408145
dd 2530585658, 25011837, 3520020182, 2088578344
dd 530523599, 2918365339, 1524020338, 1518925132
dd 3760827505, 3759777254, 1202760957, 3985898139
dd 3906192525, 674977740, 4174734889, 2031300136
dd 2019492241, 3983892565, 4153806404, 3822280332
dd 352677332, 2297720250, 60907813, 90501309
dd 3286998549, 1016092578, 2535922412, 2839152426
dd 457141659, 509813237, 4120667899, 652014361
dd 1966332200, 2975202805, 55981186, 2327461051
dd 676427537, 3255491064, 2882294119, 3433927263
dd 1307055953, 942726286, 933058658, 2468411793
dd 3933900994, 4215176142, 1361170020, 2001714738
dd 2830558078, 3274259782, 1222529897, 1679025792
dd 2729314320, 3714953764, 1770335741, 151462246
dd 3013232138, 1682292957, 1483529935, 471910574
dd 1539241949, 458788160, 3436315007, 1807016891
dd 3718408830, 978976581, 1043663428, 3165965781
dd 1927990952, 4200891579, 2372276910, 3208408903
dd 3533431907, 1412390302, 2931980059, 4132332400
dd 1947078029, 3881505623, 4168226417, 2941484381
dd 1077988104, 1320477388, 886195818, 18198404
dd 3786409000, 2509781533, 112762804, 3463356488
dd 1866414978, 891333506, 18488651, 661792760
dd 1628790961, 3885187036, 3141171499, 876946877
dd 2693282273, 1372485963, 791857591, 2686433993
dd 3759982718, 3167212022, 3472953795, 2716379847
dd 445679433, 3561995674, 3504004811, 3574258232
dd 54117162, 3331405415, 2381918588, 3769707343
dd 4154350007, 1140177722, 4074052095, 668550556
dd 3214352940, 367459370, 261225585, 2610173221
dd 4209349473, 3468074219, 3265815641, 314222801
dd 3066103646, 3808782860, 282218597, 3406013506
dd 3773591054, 379116347, 1285071038, 846784868
dd 2669647154, 3771962079, 3550491691, 2305946142
dd 453669953, 1268987020, 3317592352, 3279303384
dd 3744833421, 2610507566, 3859509063, 266596637
dd 3847019092, 517658769, 3462560207, 3443424879
dd 370717030, 4247526661, 2224018117, 4143653529
dd 4112773975, 2788324899, 2477274417, 1456262402
dd 2901442914, 1517677493, 1846949527, 2295493580
dd 3734397586, 2176403920, 1280348187, 1908823572
dd 3871786941, 846861322, 1172426758, 3287448474
dd 3383383037, 1655181056, 3139813346, 901632758
dd 1897031941, 2986607138, 3066810236, 3447102507
dd 1393639104, 373351379, 950779232, 625454576
dd 3124240540, 4148612726, 2007998917, 544563296
dd 2244738638, 2330496472, 2058025392, 1291430526
dd 424198748, 50039436, 29584100, 3605783033
dd 2429876329, 2791104160, 1057563949, 3255363231
dd 3075367218, 3463963227, 1469046755, 985887462
ctx blowfishctx <>
.data?
_datalr dd 2h dup(?)
.code
blowfish_init proc ptrIndata:DWORD, ptrIndata_length:DWORD
pushad
mov esi,offset blowfishpbox
mov edi,offset ctx
mov ecx,256*4+18
cld
rep movsd
xor ebx,ebx
xor edx,edx
xor ebp,ebp
mov esi,[esp+28h] ; ptrIndata
@_r2:
mov ecx,4
@_r1:
lodsb
shl ebx,8
or ebx,eax
loop @_r1
xor ebx,[blowfishpbox+edx]
mov [ctx.P+edx],ebx
add edx,4
add ebp,4
cmp edx,(_noRounds+2)*4
jz @_r3
cmp ebp,[esp+2ch] ; ptrIndata_length
jl @_r2
xor ebp,ebp
mov esi,[esp+28h]
jmp @_r2
@_r3:
xor ebp,ebp
mov [_datalr],ebp
mov [_datalr+4],ebp
@_r4:
push offset _datalr ; datar
push offset _datalr
call blowfish_encrypt
mov [ctx.P+ebp*4],ecx
mov [ctx.P+ebp*4+4],edi
add ebp,2
cmp ebp,(_noRounds+2)
jnz @_r4
xor ebp,ebp
@_r5:
push offset _datalr
push offset _datalr
call blowfish_encrypt
mov [ctx.S+ebp*4],ecx
mov [ctx.S+ebp*4+4],edi
add ebp,2
cmp ebp,(256*4)
jnz @_r5
popad
ret
blowfish_init endp
blowfish_encrypt proc ptrIndata:DWORD, ptrOutdata:DWORD
mov ecx,ptrIndata ; xl
mov edi,[ecx+4]
mov ecx,[ecx]
xor edx,edx
@_r1:
xor ecx,[ctx.P+edx]
push ecx
call _F
xor edi,ebx
xchg ecx,edi
add edx,4
cmp edx,(_noRounds*4)
jl @_r1
xchg ecx,edi
xor ecx,[ctx.P+(_noRounds+1)*4] ; xl
xor edi,[ctx.P+(_noRounds)*4] ; xr
mov esi,ptrOutdata
mov [esi],ecx
mov [esi+4],edi
ret
blowfish_encrypt endp
blowfish_decrypt proc ptrIndata:DWORD, ptrOutdata:DWORD
mov ecx,ptrIndata ; xl
mov edi,[ecx+4]
mov ecx,[ecx]
mov edx,(_noRounds+1)*4
@_r1:
xor ecx,[ctx.P+edx] ; xl
push ecx
call _F
xor edi,ebx ; xr
xchg ecx,edi
sub edx,4
cmp edx,4
ja @_r1
xchg ecx,edi
xor edi,[ctx.P+4]
xor ecx,[ctx.P]
mov esi,ptrOutdata
mov [esi],ecx
mov [esi+4],edi
ret
blowfish_decrypt endp
_F proc ptrIndata:DWORD
xor eax,eax
mov al,byte ptr [ptrIndata+3]
mov ebx,[ctx.S+eax*4]
mov al,byte ptr [ptrIndata+2]
add ebx,[ctx.S+256*4+eax*4]
mov al,byte ptr [ptrIndata+1]
xor ebx,[ctx.S+256*4*2+eax*4]
mov al,byte ptr [ptrIndata]
add ebx,[ctx.S+256*4*3+eax*4]
ret
_F endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -