⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiger.pas

📁 超级Delphi函数包,包括编程时常需要的一些函数
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit Tiger;
{(C) Coban (alex@ritlabs.com)}

interface
uses
  CryptoUtils;

type
  PTigerCtx = ^TTigerCtx;
  TTigerCtx = record
    state: array[0..2] of Int64;
    length, curlen: LongWord;
    buf: array[0..63] of Byte;
  end;

  procedure TigerInit(var ctx: TTigerCtx);
  procedure TigerUpdate(var ctx: TTigerCtx; buf: Pointer; len: LongWord; PASSES: LongWord);
  function TigerFinal(var ctx: TTigerCtx; sz: Word; PASSES: LongWord): String;

implementation
const
  T1: array[0..255] of Int64 = (
    $02AAB17CF7E90C5E   {    0 },    $AC424B03E243A8EC   {    1 },
    $72CD5BE30DD5FCD3   {    2 },    $6D019B93F6F97F3A   {    3 },
    $CD9978FFD21F9193   {    4 },    $7573A1C9708029E2   {    5 },
    $B164326B922A83C3   {    6 },    $46883EEE04915870   {    7 },
    $EAACE3057103ECE6   {    8 },    $C54169B808A3535C   {    9 },
    $4CE754918DDEC47C   {   10 },    $0AA2F4DFDC0DF40C   {   11 },
    $10B76F18A74DBEFA   {   12 },    $C6CCB6235AD1AB6A   {   13 },
    $13726121572FE2FF   {   14 },    $1A488C6F199D921E   {   15 },
    $4BC9F9F4DA0007CA   {   16 },    $26F5E6F6E85241C7   {   17 },
    $859079DBEA5947B6   {   18 },    $4F1885C5C99E8C92   {   19 },
    $D78E761EA96F864B   {   20 },    $8E36428C52B5C17D   {   21 },
    $69CF6827373063C1   {   22 },    $B607C93D9BB4C56E   {   23 },
    $7D820E760E76B5EA   {   24 },    $645C9CC6F07FDC42   {   25 },
    $BF38A078243342E0   {   26 },    $5F6B343C9D2E7D04   {   27 },
    $F2C28AEB600B0EC6   {   28 },    $6C0ED85F7254BCAC   {   29 },
    $71592281A4DB4FE5   {   30 },    $1967FA69CE0FED9F   {   31 },
    $FD5293F8B96545DB   {   32 },    $C879E9D7F2A7600B   {   33 },
    $860248920193194E   {   34 },    $A4F9533B2D9CC0B3   {   35 },
    $9053836C15957613   {   36 },    $DB6DCF8AFC357BF1   {   37 },
    $18BEEA7A7A370F57   {   38 },    $037117CA50B99066   {   39 },
    $6AB30A9774424A35   {   40 },    $F4E92F02E325249B   {   41 },
    $7739DB07061CCAE1   {   42 },    $D8F3B49CECA42A05   {   43 },
    $BD56BE3F51382F73   {   44 },    $45FAED5843B0BB28   {   45 },
    $1C813D5C11BF1F83   {   46 },    $8AF0E4B6D75FA169   {   47 },
    $33EE18A487AD9999   {   48 },    $3C26E8EAB1C94410   {   49 },
    $B510102BC0A822F9   {   50 },    $141EEF310CE6123B   {   51 },
    $FC65B90059DDB154   {   52 },    $E0158640C5E0E607   {   53 },
    $884E079826C3A3CF   {   54 },    $930D0D9523C535FD   {   55 },
    $35638D754E9A2B00   {   56 },    $4085FCCF40469DD5   {   57 },
    $C4B17AD28BE23A4C   {   58 },    $CAB2F0FC6A3E6A2E   {   59 },
    $2860971A6B943FCD   {   60 },    $3DDE6EE212E30446   {   61 },
    $6222F32AE01765AE   {   62 },    $5D550BB5478308FE   {   63 },
    $A9EFA98DA0EDA22A   {   64 },    $C351A71686C40DA7   {   65 },
    $1105586D9C867C84   {   66 },    $DCFFEE85FDA22853   {   67 },
    $CCFBD0262C5EEF76   {   68 },    $BAF294CB8990D201   {   69 },
    $E69464F52AFAD975   {   70 },    $94B013AFDF133E14   {   71 },
    $06A7D1A32823C958   {   72 },    $6F95FE5130F61119   {   73 },
    $D92AB34E462C06C0   {   74 },    $ED7BDE33887C71D2   {   75 },
    $79746D6E6518393E   {   76 },    $5BA419385D713329   {   77 },
    $7C1BA6B948A97564   {   78 },    $31987C197BFDAC67   {   79 },
    $DE6C23C44B053D02   {   80 },    $581C49FED002D64D   {   81 },
    $DD474D6338261571   {   82 },    $AA4546C3E473D062   {   83 },
    $928FCE349455F860   {   84 },    $48161BBACAAB94D9   {   85 },
    $63912430770E6F68   {   86 },    $6EC8A5E602C6641C   {   87 },
    $87282515337DDD2B   {   88 },    $2CDA6B42034B701B   {   89 },
    $B03D37C181CB096D   {   90 },    $E108438266C71C6F   {   91 },
    $2B3180C7EB51B255   {   92 },    $DF92B82F96C08BBC   {   93 },
    $5C68C8C0A632F3BA   {   94 },    $5504CC861C3D0556   {   95 },
    $ABBFA4E55FB26B8F   {   96 },    $41848B0AB3BACEB4   {   97 },
    $B334A273AA445D32   {   98 },    $BCA696F0A85AD881   {   99 },
    $24F6EC65B528D56C   {  100 },    $0CE1512E90F4524A   {  101 },
    $4E9DD79D5506D35A   {  102 },    $258905FAC6CE9779   {  103 },
    $2019295B3E109B33   {  104 },    $F8A9478B73A054CC   {  105 },
    $2924F2F934417EB0   {  106 },    $3993357D536D1BC4   {  107 },
    $38A81AC21DB6FF8B   {  108 },    $47C4FBF17D6016BF   {  109 },
    $1E0FAADD7667E3F5   {  110 },    $7ABCFF62938BEB96   {  111 },
    $A78DAD948FC179C9   {  112 },    $8F1F98B72911E50D   {  113 },
    $61E48EAE27121A91   {  114 },    $4D62F7AD31859808   {  115 },
    $ECEBA345EF5CEAEB   {  116 },    $F5CEB25EBC9684CE   {  117 },
    $F633E20CB7F76221   {  118 },    $A32CDF06AB8293E4   {  119 },
    $985A202CA5EE2CA4   {  120 },    $CF0B8447CC8A8FB1   {  121 },
    $9F765244979859A3   {  122 },    $A8D516B1A1240017   {  123 },
    $0BD7BA3EBB5DC726   {  124 },    $E54BCA55B86ADB39   {  125 },
    $1D7A3AFD6C478063   {  126 },    $519EC608E7669EDD   {  127 },
    $0E5715A2D149AA23   {  128 },    $177D4571848FF194   {  129 },
    $EEB55F3241014C22   {  130 },    $0F5E5CA13A6E2EC2   {  131 },
    $8029927B75F5C361   {  132 },    $AD139FABC3D6E436   {  133 },
    $0D5DF1A94CCF402F   {  134 },    $3E8BD948BEA5DFC8   {  135 },
    $A5A0D357BD3FF77E   {  136 },    $A2D12E251F74F645   {  137 },
    $66FD9E525E81A082   {  138 },    $2E0C90CE7F687A49   {  139 },
    $C2E8BCBEBA973BC5   {  140 },    $000001BCE509745F   {  141 },
    $423777BBE6DAB3D6   {  142 },    $D1661C7EAEF06EB5   {  143 },
    $A1781F354DAACFD8   {  144 },    $2D11284A2B16AFFC   {  145 },
    $F1FC4F67FA891D1F   {  146 },    $73ECC25DCB920ADA   {  147 },
    $AE610C22C2A12651   {  148 },    $96E0A810D356B78A   {  149 },
    $5A9A381F2FE7870F   {  150 },    $D5AD62EDE94E5530   {  151 },
    $D225E5E8368D1427   {  152 },    $65977B70C7AF4631   {  153 },
    $99F889B2DE39D74F   {  154 },    $233F30BF54E1D143   {  155 },
    $9A9675D3D9A63C97   {  156 },    $5470554FF334F9A8   {  157 },
    $166ACB744A4F5688   {  158 },    $70C74CAAB2E4AEAD   {  159 },
    $F0D091646F294D12   {  160 },    $57B82A89684031D1   {  161 },
    $EFD95A5A61BE0B6B   {  162 },    $2FBD12E969F2F29A   {  163 },
    $9BD37013FEFF9FE8   {  164 },    $3F9B0404D6085A06   {  165 },
    $4940C1F3166CFE15   {  166 },    $09542C4DCDF3DEFB   {  167 },
    $B4C5218385CD5CE3   {  168 },    $C935B7DC4462A641   {  169 },
    $3417F8A68ED3B63F   {  170 },    $B80959295B215B40   {  171 },
    $F99CDAEF3B8C8572   {  172 },    $018C0614F8FCB95D   {  173 },
    $1B14ACCD1A3ACDF3   {  174 },    $84D471F200BB732D   {  175 },
    $C1A3110E95E8DA16   {  176 },    $430A7220BF1A82B8   {  177 },
    $B77E090D39DF210E   {  178 },    $5EF4BD9F3CD05E9D   {  179 },
    $9D4FF6DA7E57A444   {  180 },    $DA1D60E183D4A5F8   {  181 },
    $B287C38417998E47   {  182 },    $FE3EDC121BB31886   {  183 },
    $C7FE3CCC980CCBEF   {  184 },    $E46FB590189BFD03   {  185 },
    $3732FD469A4C57DC   {  186 },    $7EF700A07CF1AD65   {  187 },
    $59C64468A31D8859   {  188 },    $762FB0B4D45B61F6   {  189 },
    $155BAED099047718   {  190 },    $68755E4C3D50BAA6   {  191 },
    $E9214E7F22D8B4DF   {  192 },    $2ADDBF532EAC95F4   {  193 },
    $32AE3909B4BD0109   {  194 },    $834DF537B08E3450   {  195 },
    $FA209DA84220728D   {  196 },    $9E691D9B9EFE23F7   {  197 },
    $0446D288C4AE8D7F   {  198 },    $7B4CC524E169785B   {  199 },
    $21D87F0135CA1385   {  200 },    $CEBB400F137B8AA5   {  201 },
    $272E2B66580796BE   {  202 },    $3612264125C2B0DE   {  203 },
    $057702BDAD1EFBB2   {  204 },    $D4BABB8EACF84BE9   {  205 },
    $91583139641BC67B   {  206 },    $8BDC2DE08036E024   {  207 },
    $603C8156F49F68ED   {  208 },    $F7D236F7DBEF5111   {  209 },
    $9727C4598AD21E80   {  210 },    $A08A0896670A5FD7   {  211 },
    $CB4A8F4309EBA9CB   {  212 },    $81AF564B0F7036A1   {  213 },
    $C0B99AA778199ABD   {  214 },    $959F1EC83FC8E952   {  215 },
    $8C505077794A81B9   {  216 },    $3ACAAF8F056338F0   {  217 },
    $07B43F50627A6778   {  218 },    $4A44AB49F5ECCC77   {  219 },
    $3BC3D6E4B679EE98   {  220 },    $9CC0D4D1CF14108C   {  221 },
    $4406C00B206BC8A0   {  222 },    $82A18854C8D72D89   {  223 },
    $67E366B35C3C432C   {  224 },    $B923DD61102B37F2   {  225 },
    $56AB2779D884271D   {  226 },    $BE83E1B0FF1525AF   {  227 },
    $FB7C65D4217E49A9   {  228 },    $6BDBE0E76D48E7D4   {  229 },
    $08DF828745D9179E   {  230 },    $22EA6A9ADD53BD34   {  231 },
    $E36E141C5622200A   {  232 },    $7F805D1B8CB750EE   {  233 },
    $AFE5C7A59F58E837   {  234 },    $E27F996A4FB1C23C   {  235 },
    $D3867DFB0775F0D0   {  236 },    $D0E673DE6E88891A   {  237 },
    $123AEB9EAFB86C25   {  238 },    $30F1D5D5C145B895   {  239 },
    $BB434A2DEE7269E7   {  240 },    $78CB67ECF931FA38   {  241 },
    $F33B0372323BBF9C   {  242 },    $52D66336FB279C74   {  243 },
    $505F33AC0AFB4EAA   {  244 },    $E8A5CD99A2CCE187   {  245 },
    $534974801E2D30BB   {  246 },    $8D2D5711D5876D90   {  247 },
    $1F1A412891BC038E   {  248 },    $D6E2E71D82E56648   {  249 },
    $74036C3A497732B7   {  250 },    $89B67ED96361F5AB   {  251 },
    $FFED95D8F1EA02A2   {  252 },    $E72B3BD61464D43D   {  253 },
    $A6300F170BDC4820   {  254 },    $EBC18760ED78A77A   {  255 });
  T2: array[0..255] of Int64 = (
    $E6A6BE5A05A12138   {  256 },    $B5A122A5B4F87C98   {  257 },
    $563C6089140B6990   {  258 },    $4C46CB2E391F5DD5   {  259 },
    $D932ADDBC9B79434   {  260 },    $08EA70E42015AFF5   {  261 },
    $D765A6673E478CF1   {  262 },    $C4FB757EAB278D99   {  263 },
    $DF11C6862D6E0692   {  264 },    $DDEB84F10D7F3B16   {  265 },
    $6F2EF604A665EA04   {  266 },    $4A8E0F0FF0E0DFB3   {  267 },
    $A5EDEEF83DBCBA51   {  268 },    $FC4F0A2A0EA4371E   {  269 },
    $E83E1DA85CB38429   {  270 },    $DC8FF882BA1B1CE2   {  271 },
    $CD45505E8353E80D   {  272 },    $18D19A00D4DB0717   {  273 },
    $34A0CFEDA5F38101   {  274 },    $0BE77E518887CAF2   {  275 },
    $1E341438B3C45136   {  276 },    $E05797F49089CCF9   {  277 },
    $FFD23F9DF2591D14   {  278 },    $543DDA228595C5CD   {  279 },
    $661F81FD99052A33   {  280 },    $8736E641DB0F7B76   {  281 },
    $15227725418E5307   {  282 },    $E25F7F46162EB2FA   {  283 },
    $48A8B2126C13D9FE   {  284 },    $AFDC541792E76EEA   {  285 },
    $03D912BFC6D1898F   {  286 },    $31B1AAFA1B83F51B   {  287 },
    $F1AC2796E42AB7D9   {  288 },    $40A3A7D7FCD2EBAC   {  289 },
    $1056136D0AFBBCC5   {  290 },    $7889E1DD9A6D0C85   {  291 },
    $D33525782A7974AA   {  292 },    $A7E25D09078AC09B   {  293 },
    $BD4138B3EAC6EDD0   {  294 },    $920ABFBE71EB9E70   {  295 },
    $A2A5D0F54FC2625C   {  296 },    $C054E36B0B1290A3   {  297 },
    $F6DD59FF62FE932B   {  298 },    $3537354511A8AC7D   {  299 },
    $CA845E9172FADCD4   {  300 },    $84F82B60329D20DC   {  301 },
    $79C62CE1CD672F18   {  302 },    $8B09A2ADD124642C   {  303 },
    $D0C1E96A19D9E726   {  304 },    $5A786A9B4BA9500C   {  305 },
    $0E020336634C43F3   {  306 },    $C17B474AEB66D822   {  307 },
    $6A731AE3EC9BAAC2   {  308 },    $8226667AE0840258   {  309 },
    $67D4567691CAECA5   {  310 },    $1D94155C4875ADB5   {  311 },
    $6D00FD985B813FDF   {  312 },    $51286EFCB774CD06   {  313 },
    $5E8834471FA744AF   {  314 },    $F72CA0AEE761AE2E   {  315 },
    $BE40E4CDAEE8E09A   {  316 },    $E9970BBB5118F665   {  317 },
    $726E4BEB33DF1964   {  318 },    $703B000729199762   {  319 },
    $4631D816F5EF30A7   {  320 },    $B880B5B51504A6BE   {  321 },
    $641793C37ED84B6C   {  322 },    $7B21ED77F6E97D96   {  323 },
    $776306312EF96B73   {  324 },    $AE528948E86FF3F4   {  325 },
    $53DBD7F286A3F8F8   {  326 },    $16CADCE74CFC1063   {  327 },
    $005C19BDFA52C6DD   {  328 },    $68868F5D64D46AD3   {  329 },
    $3A9D512CCF1E186A   {  330 },    $367E62C2385660AE   {  331 },
    $E359E7EA77DCB1D7   {  332 },    $526C0773749ABE6E   {  333 },
    $735AE5F9D09F734B   {  334 },    $493FC7CC8A558BA8   {  335 },
    $B0B9C1533041AB45   {  336 },    $321958BA470A59BD   {  337 },
    $852DB00B5F46C393   {  338 },    $91209B2BD336B0E5   {  339 },
    $6E604F7D659EF19F   {  340 },    $B99A8AE2782CCB24   {  341 },
    $CCF52AB6C814C4C7   {  342 },    $4727D9AFBE11727B   {  343 },
    $7E950D0C0121B34D   {  344 },    $756F435670AD471F   {  345 },
    $F5ADD442615A6849   {  346 },    $4E87E09980B9957A   {  347 },
    $2ACFA1DF50AEE355   {  348 },    $D898263AFD2FD556   {  349 },
    $C8F4924DD80C8FD6   {  350 },    $CF99CA3D754A173A   {  351 },
    $FE477BACAF91BF3C   {  352 },    $ED5371F6D690C12D   {  353 },
    $831A5C285E687094   {  354 },    $C5D3C90A3708A0A4   {  355 },
    $0F7F903717D06580   {  356 },    $19F9BB13B8FDF27F   {  357 },
    $B1BD6F1B4D502843   {  358 },    $1C761BA38FFF4012   {  359 },
    $0D1530C4E2E21F3B   {  360 },    $8943CE69A7372C8A   {  361 },
    $E5184E11FEB5CE66   {  362 },    $618BDB80BD736621   {  363 },
    $7D29BAD68B574D0B   {  364 },    $81BB613E25E6FE5B   {  365 },
    $071C9C10BC07913F   {  366 },    $C7BEEB7909AC2D97   {  367 },
    $C3E58D353BC5D757   {  368 },    $EB017892F38F61E8   {  369 },
    $D4EFFB9C9B1CC21A   {  370 },    $99727D26F494F7AB   {  371 },
    $A3E063A2956B3E03   {  372 },    $9D4A8B9A4AA09C30   {  373 },
    $3F6AB7D500090FB4   {  374 },    $9CC0F2A057268AC0   {  375 },
    $3DEE9D2DEDBF42D1   {  376 },    $330F49C87960A972   {  377 },
    $C6B2720287421B41   {  378 },    $0AC59EC07C00369C   {  379 },
    $EF4EAC49CB353425   {  380 },    $F450244EEF0129D8   {  381 },
    $8ACC46E5CAF4DEB6   {  382 },    $2FFEAB63989263F7   {  383 },
    $8F7CB9FE5D7A4578   {  384 },    $5BD8F7644E634635   {  385 },
    $427A7315BF2DC900   {  386 },    $17D0C4AA2125261C   {  387 },
    $3992486C93518E50   {  388 },    $B4CBFEE0A2D7D4C3   {  389 },
    $7C75D6202C5DDD8D   {  390 },    $DBC295D8E35B6C61   {  391 },
    $60B369D302032B19   {  392 },    $CE42685FDCE44132   {  393 },
    $06F3DDB9DDF65610   {  394 },    $8EA4D21DB5E148F0   {  395 },
    $20B0FCE62FCD496F   {  396 },    $2C1B912358B0EE31   {  397 },
    $B28317B818F5A308   {  398 },    $A89C1E189CA6D2CF   {  399 },
    $0C6B18576AAADBC8   {  400 },    $B65DEAA91299FAE3   {  401 },
    $FB2B794B7F1027E7   {  402 },    $04E4317F443B5BEB   {  403 },
    $4B852D325939D0A6   {  404 },    $D5AE6BEEFB207FFC   {  405 },
    $309682B281C7D374   {  406 },    $BAE309A194C3B475   {  407 },

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -