亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ripemd.c

?? rsa加密算法的c++實現,此程序實現利用公鑰解密
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************//*                                                                            *//*  Functions for arithmetic and number theory with large integers in C       *//*  Software supplement to the book "Cryptography in C and C++"               *//*  by Michael Welschenbach                                                   *//*                                                                            *//*  Module ripemd.c         Revision: 16.05.2002                              *//*                                                                            *//*  Copyright (C) 1998-2003 by Michael Welschenbach                           *//*  Copyright (C) 2001-2003 by Springer-Verlag Berlin, Heidelberg             *//*  Copyright (C) 2001-2003 by Apress L.P., Berkeley, CA                      *//*  Copyright (C) 2002-2003 by Wydawnictwa MIKOM, Poland                      *//*  Copyright (C) 2002-2003 by PHEI, P.R.China                                *//*  Copyright (C) 2002-2003 by InfoBook, Korea                                *//*  Copyright (C) 2002-2003 by Triumph Publishing, Russia                     *//*                                                                            *//*  All Rights Reserved                                                       *//*                                                                            *//*  The software may be used for noncommercial purposes and may be altered,   *//*  as long as the following conditions are accepted without any              *//*  qualification:                                                            *//*                                                                            *//*  (1) All changes to the sources must be identified in such a way that the  *//*      changed software cannot be misinterpreted as the original software.   *//*                                                                            *//*  (2) The statements of copyright may not removed or altered.               *//*                                                                            *//*  (3) The following DISCLAIMER is accepted:                                 *//*                                                                            *//*  DISCLAIMER:                                                               *//*                                                                            *//*  There is no warranty for the software contained on this CD-ROM, to the    *//*  extent permitted by applicable law. The copyright holders provide the     *//*  software `as is' without warranty of any kind, either expressed or        *//*  implied, including, but not limited to, the implied warranty of fitness   *//*  for a particular purpose. The entire risk as to the quality and           *//*  performance of the program is with you.                                   *//*                                                                            *//*  In no event unless required by applicable law or agreed to in writing     *//*  will the copyright holders, or any of the individual authors named in     *//*  the source files, be liable to you for damages, including any general,    *//*  special, incidental or consequential damages arising out of any use of    *//*  the software or out of inability to use the software (including but not   *//*  limited to any financial losses, loss of data or data being rendered      *//*  inaccurate or losses sustained by you or by third parties as a result of  *//*  a failure of the software to operate with any other programs), even if    *//*  such holder or other party has been advised of the possibility of such    *//*  damages.                                                                  *//*                                                                            *//******************************************************************************/#include <stdio.h>#include <string.h>#include "flint.h"#include "ripemd.h"#ifndef inline#if (_MSC_VER >= 1100) || defined __GNUC__#define inline __inline#endif#endif/* Prototypes of local functions */static void appetize (ULONG *);static void swallow (ULONG *, ULONG *);static void digest (ULONG *, UCHAR *, ULONG[]);static void appetize128 (ULONG *);static void swallow128 (ULONG *, ULONG *);static void digest128 (ULONG *, UCHAR *, ULONG[]);#ifdef FLINT_SECUREstatic inline void ZeroUlong (ULONG *);static inline void Zero2Ulong (ULONG *, ULONG *);static inline void Zero4Ulong (ULONG *, ULONG *, ULONG *, ULONG *);static inline void ZeroUcharArray (void *, size_t);#endif/* Macros *//* Rotation, simulation of assembler instruction for barrel shifting */#define ROL(X, N)   (((X) << (N)) | ((X) >> (32-(N))))/* RIPEMD specific chaining of intermediate values in rounds */#define CHAIN128(A, B, C, D, X, S) { \          (A) = (D); (D) = (C); (C) = (B); \          (B) = ROL((X), (S)); \        }#define CHAIN160(A, B, C, D, E, X, S) { \          (A) = (E); (E) = (D); (D) = ROL((C), 10); (C) = (B); \          (B) = ROL((X), (S)) + (A); \        }/* Conversion of an array of type UCHAR into a value of type ULONG */#if defined LITTLE_ENDIAN#define UC2UL(ucptr)  *(unsigned long *)((ucptr))#else#define UC2UL(ucptr) \          (((unsigned long) *((ucptr)+3) << 24) | \           ((unsigned long) *((ucptr)+2) << 16) | \           ((unsigned long) *((ucptr)+1) <<  8) | \           ((unsigned long) *(ucptr)))#endif/* Addition of a single-digit number b to a double-digit number represented *//* by an array (a[1],a[0]). A carry in a[0]+=b is handled by increasing a[1]. */#define ADDC(a, b) { \          if (((a)[0] + (b)) < (a)[0]) {(a)[1]++;} \          (a)[0] += (b); \        }/* Constants *//* Choice of message words... */static const intr1[] = { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,         7,  4, 13,  1, 10,  6, 15,  3, 12,  0,  9,  5,  2, 14, 11,  8,         3, 10, 14,  4,  9, 15,  8,  1,  2,  7,  0,  6, 13, 11,  5, 12,         1,  9, 11, 10,  0,  8, 12,  4, 13,  3,  7, 15, 14,  5,  6,  2,         4,  0,  5,  9,  7, 12,  2, 10, 14,  1,  3,  8, 11,  6, 15, 13};/* ... for parallel rounds */static const intr2[] = { 5, 14,  7,  0,  9,  2, 11,  4, 13,  6, 15,  8,  1, 10,  3, 12,         6, 11,  3,  7,  0, 13,  5, 10, 14, 15,  8, 12,  4,  9,  1,  2,        15,  5,  1,  3,  7, 14,  6,  9, 11,  8, 12,  2, 10,  0,  4, 13,         8,  6,  4,  1,  3, 11, 15,  0,  5, 12,  2, 13,  9,  7, 10, 14,        12, 15, 10,  4,  1,  5,  8,  7,  6,  2, 13, 14,  0,  3,  9, 11};/* Length of rotations... */static const ints1[] = {11, 14, 15, 12,  5,  8,  7,  9, 11, 13, 14, 15,  6,  7,  9,  8,         7,  6,  8, 13, 11,  9,  7, 15,  7, 12, 15,  9, 11,  7, 13, 12,        11, 13,  6,  7, 14,  9, 13, 15, 14,  8, 13,  6,  5, 12,  7,  5,        11, 12, 14, 15, 14, 15,  9,  8,  9, 14,  5,  6,  8,  6,  5, 12,         9, 15,  5, 11,  6,  8, 13, 12,  5, 12, 13, 14, 11,  8,  5,  6};/* ... for parallel rounds */static const ints2[] = { 8,  9,  9, 11, 13, 15, 15,  5,  7,  7,  8, 11, 14, 14, 12,  6,         9, 13, 15,  7, 12,  8,  9, 11,  7,  7, 12,  7,  6, 15, 13, 11,         9,  7, 15, 11,  8,  6,  6, 14, 12, 13,  5, 14, 13, 13,  7,  5,        15,  5,  8, 11, 14, 14,  6, 14,  6,  9, 12,  9, 12,  5, 15,  8,         8,  5, 12,  9, 12,  5, 14,  6,  8, 13,  6,  5, 15, 13, 11, 11};/*****************************************************************************//* RIPEMD-160 API                                                            *//*****************************************************************************//******************************************************************************//*                                                                            *//*  Function:   Hashing of a message of length byte in a single step          *//*  Syntax:     void ripemd160 (UCHAR *HashRes, UCHAR *clear, ULONG length);  *//*  Input:      UCHAR *clear (Pointer to message block)                       *//*              ULONG length (Length of message block)                        *//*  Output:     UCHAR *HashRes (Hash Value)                                   *//*  Returns:    -                                                             *//*                                                                            *//******************************************************************************/void __FLINT_APIripemd160 (UCHAR *HashRes, UCHAR *clear, ULONG length){  RMDSTAT hws;  ripeinit (&hws);  ripefinish (HashRes, &hws, clear, length);#ifdef FLINT_SECURE  ZeroUcharArray (&hws, sizeof (hws));#endif /* FLINT_SECURE */  return;}/******************************************************************************//* Functions for blockwise hashing a message in several steps                 *//* Procedure: Initialization with ripeinit                                    *//*            Hashing of block1, block2,... ,blockn with function ripehash    *//*            Finish operation with function ripefinish                       *//******************************************************************************//******************************************************************************//*                                                                            *//*  Function:   Initialization of RIPEMD-160 function                         *//*  Syntax:     void ripeinit (RMDSTAT *hws);                                 *//*  Input:      RMDSTAT *hws (RIPEMD status buffer)                           *//*  Output:     -                                                             *//*  Returns:    -                                                             *//*                                                                            *//******************************************************************************/void __FLINT_APIripeinit (RMDSTAT *hws){  appetize (hws->stomach);  hws->total[0] = 0;  hws->total[1] = 0;}/******************************************************************************//*                                                                            *//*  Function:   Hashing of a message block                                    *//*  Syntax:     int ripehash (RMDSTAT *hws, UCHAR *clear, ULONG length);      *//*  Input:      RMDSTAT *hws (RIPEMD status buffer)                           *//*              UCHAR *clear (Pointer to message block)                       *//*              ULONG length (Length of message block i bytes = 0 mod 64)     *//*  Output:     -                                                             *//*  Returns:    E_CLINT_OK if everything is O.K.                              *//*              E_CLINT_RMD if length != 0 mod 64                             *//*                                                                            *//******************************************************************************/int __FLINT_APIripehash (RMDSTAT *hws, UCHAR *clear, ULONG length){  ULONG ULBlock[16];    /* message block holding 16 values of type ULONG  */  ULONG noofblocks;     /* Number of blocks of 16 ULONG-vyluse            */  ULONG i, j;           /* Counter                                        */  /* If incomplete 64 byte block exists... */  if (length & 63)    {      return E_CLINT_RMD; /* ...return error code */    }  /* Number of 64 byte message blocks in clear */  noofblocks = length >> 6;  /* Process 64 byte message blocks in clear */  for (i = 0; i < noofblocks; i++)    {        for (j = 0; j < 16; j++)          {            ULBlock[j] = UC2UL (clear);            clear += 4;          }        swallow (hws->stomach, ULBlock);    }  /* Add length of message in clear to hws->total */  ADDC (hws->total, length);#ifdef FLINT_SECURE  /* Overwrite temporary variables */  Zero4Ulong (&ULBlock[0], &ULBlock[1], &ULBlock[2], &ULBlock[3]);  Zero4Ulong (&ULBlock[4], &ULBlock[5], &ULBlock[6], &ULBlock[7]);  Zero4Ulong (&ULBlock[8], &ULBlock[9], &ULBlock[10], &ULBlock[11]);  Zero4Ulong (&ULBlock[12], &ULBlock[13], &ULBlock[14], &ULBlock[15]);#endif  return E_CLINT_OK;}/******************************************************************************//*                                                                            *//*  Function:   Finish hash function RIPEMD-160                               *//*  Syntax:     void ripefinish (UCHAR *HashRes, RMDSTAT *hws, UCHAR *clear,  *//*                                                            ULONG length);  *//*  Input:      RMDSTAT *hws (RIPEMD status buffer)                           *//*              UCHAR *clear (Pointer to the last message block               *//*              ULONG length (Length of message block in bytes)               *//*  Output:     UCHAR HashRes (20 byte hash value)                            *//*  Returns:    -                                                             *//*                                                                            *//******************************************************************************/void __FLINT_APIripefinish (UCHAR *HashRes, RMDSTAT *hws, UCHAR *clear, ULONG length){  unsigned i;  /* Number of bytes in complete blocks */  ULONG blength = (length >> 6) << 6;  /* Process complete blocks in clear */  ripehash (hws, clear, blength);  /* Add length of message in clear to hws->total */  ADDC (hws->total,length - blength);  /* Process last incomplete block with padding and length of message */  digest (hws->stomach, clear + blength, hws->total);  for (i = 0; i < 20; i += 4)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产剧情一区二区| 欧美mv和日韩mv国产网站| 91久久国产最好的精华液| 成人动漫一区二区| 欧美视频一区二区三区在线观看 | 综合激情成人伊人| 天天综合网天天综合色| 久久国产人妖系列| 色综合天天综合网天天看片| 欧美日韩在线不卡| 91精品国产入口| 中文字幕一区二区三区精华液| 日本在线不卡视频一二三区| 国产91露脸合集magnet | 精品播放一区二区| 依依成人精品视频| 高清不卡在线观看av| 欧美色图一区二区三区| 精品福利av导航| 一个色在线综合| 成人午夜免费视频| 欧美mv和日韩mv国产网站| 一个色妞综合视频在线观看| 国产成人精品www牛牛影视| 欧美日韩精品电影| 尤物在线观看一区| 精品一区二区久久| 韩国三级中文字幕hd久久精品| 99在线精品一区二区三区| 日韩一区二区视频在线观看| 一区二区在线免费| 91在线国内视频| 欧美吻胸吃奶大尺度电影| 欧美精品一区二区三区很污很色的| 一区二区在线免费观看| aaa国产一区| 久久亚洲一区二区三区四区| 日韩电影一二三区| 美国欧美日韩国产在线播放| 欧美日韩精品一区二区天天拍小说 | 99久久精品国产一区二区三区| 欧美激情一区三区| aaa欧美色吧激情视频| 成人免费小视频| 91蜜桃视频在线| 亚洲一区二区三区四区不卡| 欧美日韩不卡在线| 精品亚洲成a人在线观看| 久久噜噜亚洲综合| 99这里只有精品| 一区二区高清免费观看影视大全 | 日韩免费观看2025年上映的电影 | 精品国产sm最大网站| 国产精品99久久久| 亚洲女人****多毛耸耸8| 欧美日韩黄色影视| 国产精品综合一区二区| 亚洲日本电影在线| 91精品国产91综合久久蜜臀| 国产一区二区三区在线观看精品 | 六月婷婷色综合| 国产欧美一区二区三区鸳鸯浴| av在线不卡网| 喷水一区二区三区| 国产精品三级视频| 欧美日韩一区高清| 国产成人在线影院| 香蕉久久一区二区不卡无毒影院| 日韩美一区二区三区| 成人app下载| 免费看日韩精品| 国产精品乱码一区二区三区软件| 欧美色电影在线| 国产剧情在线观看一区二区| 一区二区三区四区在线播放| 这里只有精品免费| 91免费看视频| 精品一区二区综合| 亚洲乱码日产精品bd| 日韩精品一区二区三区四区视频| 91女厕偷拍女厕偷拍高清| 国内精品久久久久影院薰衣草| 亚洲免费看黄网站| 国产肉丝袜一区二区| 欧美精品v日韩精品v韩国精品v| 国产成人亚洲综合a∨猫咪| 日韩成人午夜电影| 亚洲欧美日韩国产手机在线| 久久久综合九色合综国产精品| 欧洲精品视频在线观看| 国产a精品视频| 蜜桃传媒麻豆第一区在线观看| 亚洲精品ww久久久久久p站| 国产日韩精品一区二区浪潮av| 欧美日高清视频| 日本精品一区二区三区高清 | 久久久99久久| 制服丝袜国产精品| 欧美性感一区二区三区| 99re热视频这里只精品| 国产九色精品成人porny| 蜜桃传媒麻豆第一区在线观看| 一区二区三区不卡视频在线观看| 国产婷婷色一区二区三区| 欧美一区2区视频在线观看| 91老司机福利 在线| 国产不卡免费视频| 国产自产v一区二区三区c| 老司机一区二区| 日韩av高清在线观看| 日日夜夜精品视频免费| 亚洲综合免费观看高清完整版在线| 中文字幕一区二区三区在线播放| 久久一留热品黄| 欧美一区二区三区在线电影| 欧美老肥妇做.爰bbww视频| 欧美日韩在线亚洲一区蜜芽| 91久久精品日日躁夜夜躁欧美| 99精品欧美一区二区三区小说 | 欧美日韩中文国产| 欧美精品久久久久久久多人混战| 欧美日韩国产一级| 欧美高清你懂得| 91精品国产色综合久久不卡电影| 日韩欧美一级二级三级| 精品人伦一区二区色婷婷| 欧美xxxxxxxx| 亚洲国产精品高清| 亚洲激情中文1区| 亚洲国产成人porn| 免费在线观看一区| 国产美女视频一区| 91网址在线看| 精品视频1区2区| 精品国产1区2区3区| 国产亚洲欧美日韩日本| 国产精品动漫网站| 亚洲电影一级黄| 激情综合网最新| 成人免费视频一区| 欧美日韩免费视频| 久久综合九色综合欧美亚洲| 国产精品你懂的在线欣赏| 亚洲精品免费在线| 美女www一区二区| 丁香六月久久综合狠狠色| 91碰在线视频| 欧美成人一区二区三区在线观看| 久久精品欧美日韩精品| 亚洲黄网站在线观看| 美美哒免费高清在线观看视频一区二区| 激情图片小说一区| 色综合中文字幕国产 | 国产三区在线成人av| 亚洲素人一区二区| 日韩成人精品视频| 成人精品视频一区二区三区尤物| 欧美在线|欧美| 国产亚洲综合在线| 午夜一区二区三区在线观看| 国产麻豆精品theporn| 色欧美88888久久久久久影院| 欧美一区二区三区公司| 国产精品伦理在线| 毛片不卡一区二区| 在线观看亚洲精品| 久久久久久久久久久久电影| 亚洲制服丝袜在线| 国产成人精品一区二区三区网站观看| 日本高清视频一区二区| 久久久久国产一区二区三区四区 | 欧美久久婷婷综合色| 国产精品美女久久久久久久网站| 日韩电影一区二区三区四区| 91网站在线播放| 久久天堂av综合合色蜜桃网| 石原莉奈在线亚洲三区| youjizz久久| 国产欧美精品区一区二区三区 | 亚洲一区二区欧美| bt7086福利一区国产| 精品国产一区二区三区四区四| 亚洲午夜在线观看视频在线| 99热精品一区二区| 国产亚洲综合av| 久久成人免费电影| 日韩一区二区免费视频| 亚洲一二三专区| 日本韩国欧美国产| 亚洲美女少妇撒尿| 91影视在线播放| 亚洲色图一区二区| av一区二区久久| 国产精品国产三级国产aⅴ入口| 国产麻豆视频一区二区| 久久夜色精品一区| 国产69精品久久久久777| 国产欧美日韩另类一区| 成人在线综合网站| 欧美国产亚洲另类动漫|