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

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

?? password.c

?? 這是個簡單的數據庫MySQL的ODBC接口源碼例子!希望可以喝大家一起分享!!
?? C
字號:
/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB   This file is public domain and comes with NO WARRANTY of any kind *//* password checking routines *//*****************************************************************************  The main idea is that no password are sent between client & server on  connection and that no password are saved in mysql in a decodable form.  On connection a random string is generated and sent to the client.  The client generates a new string with a random generator inited with  the hash values from the password and the sent string.  This 'check' string is sent to the server where it is compared with  a string generated from the stored hash_value of the password and the  random string.  The password is saved (in user.password) by using the PASSWORD() function in  mysql.  Example:    update user set password=PASSWORD("hello") where user="test"  This saves a hashed number as a string in the password field.*****************************************************************************/#include <global.h>#include <my_sys.h>
#include <m_string.h>#include "mysql.h"void randominit(struct rand_struct *rand,ulong seed, ulong seed2){						/* For mysql 3.21.# */  rand->max_value= 0x3FFFFFFFL;  rand->max_value_dbl=(double) rand->max_value;  rand->seed=seed%rand->max_value ;  rand->seed2=seed2%rand->max_value;}void old_randominit(struct rand_struct *rand,ulong seed){						/* For mysql 3.20.# */  rand->max_value= 0x01FFFFFFL;  rand->max_value_dbl=(double) rand->max_value;  seed%=rand->max_value;  rand->seed=seed ; rand->seed2=seed/2;}double rnd(struct rand_struct *rand){  rand->seed=(rand->seed*3+rand->seed2) % rand->max_value;  rand->seed2=(rand->seed+rand->seed2+33) % rand->max_value;  return (((double) rand->seed)/rand->max_value_dbl);}static void hash_password(ulong *result, const char *password){  register ulong nr=1345345333L, add=7, nr2=0x12345671L;  ulong tmp;  for (; *password ; password++)  {    if (*password == ' ' || *password == '\t')      continue;			/* skipp space in password */    tmp= (ulong) (uchar) *password;    nr^= (((nr & 63)+add)*tmp)+ (nr << 8);    nr2+=(nr2 << 8) ^ nr;    add+=tmp;  }  result[0]=nr & (((ulong) 1L << 31) -1L); /* Don't use sign bit (str2int) */;  result[1]=nr2 & (((ulong) 1L << 31) -1L);  return;}void make_scrambled_password(char *to,const char *password){  ulong hash_res[2];  hash_password(hash_res,password);  sprintf(to,"%08lx%08lx",hash_res[0],hash_res[1]);}static inline uint char_val(char X){  return (uint) (X >= '0' && X <= '9' ? X-'0' :		 X >= 'A' && X <= 'Z' ? X-'A'+10 :		 X-'a'+10);}/*** This code assumes that len(password) is divideable with 8 and that** res is big enough (2 in mysql)*/void get_salt_from_password(ulong *res,const char *password){  res[0]=res[1]=0;  if (password)  {    while (*password)    {      ulong val=0;      uint i;      for (i=0 ; i < 8 ; i++)	val=(val << 4)+char_val(*password++);      *res++=val;    }  }  return;}/* * Genererate a new message based on message and password * The same thing is done in client and server and the results are checked. */char *scramble(char *to,const char *message,const char *password,	       my_bool old_ver){  struct rand_struct rand;  ulong hash_pass[2],hash_message[2];  if (password && password[0])  {    char *to_start=to;    hash_password(hash_pass,password);    hash_password(hash_message,message);    if (old_ver)      old_randominit(&rand,hash_pass[0] ^ hash_message[0]);    else      randominit(&rand,hash_pass[0] ^ hash_message[0],		 hash_pass[1] ^ hash_message[1]);    while (*message++)      *to++= (char) (floor(rnd(&rand)*31)+64);    if (!old_ver)    {						/* Make it harder to break */      char extra=(char) (floor(rnd(&rand)*31));      while (to_start != to)	*(to_start++)^=extra;    }  }  *to=0;  return to;}my_bool check_scramble(const char *scramble, const char *message,		       ulong *hash_pass, my_bool old_ver){  struct rand_struct rand;  ulong hash_message[2];  char buff[16],*to,extra;			/* Big enough for check */  const char *pos;  hash_password(hash_message,message);  if (old_ver)    old_randominit(&rand,hash_pass[0] ^ hash_message[0]);  else    randominit(&rand,hash_pass[0] ^ hash_message[0],	       hash_pass[1] ^ hash_message[1]);  to=buff;  for (pos=scramble ; *pos ; pos++)    *to++=(char) (floor(rnd(&rand)*31)+64);  if (old_ver)    extra=0;  else    extra=(char) (floor(rnd(&rand)*31));  to=buff;  while (*scramble)  {    if (*scramble++ != (char) (*to++ ^ extra))      return 1;					/* Wrong password */  }  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品毛片a∨一区二区三区 | 色婷婷香蕉在线一区二区| 亚洲免费观看高清完整版在线观看| 欧美一区二区精品久久911| 成人三级在线视频| 国产高清亚洲一区| 国产一区二区精品久久99 | 99v久久综合狠狠综合久久| 国产一区二区三区日韩| 国产成人综合在线| 一本久久精品一区二区| 91一区二区三区在线播放| 91久久香蕉国产日韩欧美9色| av中文字幕一区| 欧美挠脚心视频网站| 日韩欧美国产一二三区| 久久久精品综合| 午夜精品久久久久久久| 久久狠狠亚洲综合| 不卡电影一区二区三区| 欧美高清视频一二三区| 国产三区在线成人av| 亚洲乱码日产精品bd| 国产制服丝袜一区| 欧美日韩国产123区| 国产三级一区二区| 亚洲综合免费观看高清完整版在线| 日韩在线a电影| 成人91在线观看| 51精品久久久久久久蜜臀| 亚洲人成影院在线观看| 国产一区二区调教| 精品国产青草久久久久福利| 中文字幕不卡一区| 国产激情一区二区三区四区| 欧美午夜电影网| 亚洲一区二区精品久久av| 99久久精品情趣| 亚洲欧美综合另类在线卡通| 卡一卡二国产精品| 91在线云播放| 69久久99精品久久久久婷婷| 一区二区三区视频在线观看| 福利一区二区在线| 久久女同互慰一区二区三区| 另类小说一区二区三区| 欧美一卡二卡在线| 老鸭窝一区二区久久精品| 欧美精品自拍偷拍| 欧美精品国产精品| 亚洲精品一区二区三区99| 午夜伊人狠狠久久| 欧美久久久影院| 国产一区二区三区久久久| 久久久午夜精品理论片中文字幕| 免费久久精品视频| 久久亚洲精品国产精品紫薇| 蜜桃一区二区三区在线观看| 精品久久久久久久久久久久包黑料| 喷水一区二区三区| 国产丝袜在线精品| 欧美三级三级三级| 久久精品国产一区二区三| 精品国产三级电影在线观看| 91视频你懂的| 日本欧美韩国一区三区| 精品国产一区a| 日本韩国欧美一区二区三区| 五月综合激情婷婷六月色窝| 精品噜噜噜噜久久久久久久久试看| 日本一不卡视频| 欧美国产一区视频在线观看| 欧美疯狂性受xxxxx喷水图片| 美国三级日本三级久久99| 最新高清无码专区| 日韩精品一区二区三区在线观看| 97久久超碰精品国产| 国产精品中文字幕一区二区三区| 日韩一区在线看| 久久精品人人做人人爽人人| 欧美日韩免费不卡视频一区二区三区 | 国产91在线看| 国产精品一区二区在线观看网站| 一区二区激情视频| 亚洲午夜成aⅴ人片| 日韩毛片在线免费观看| 欧美国产日韩一二三区| 国产亚洲综合色| 2021中文字幕一区亚洲| 欧美一级欧美一级在线播放| 大桥未久av一区二区三区中文| 国产精品一区二区视频| 国产精品18久久久久久vr| 麻豆成人久久精品二区三区红 | 粉嫩av一区二区三区| 国产精品系列在线观看| 成人精品在线视频观看| 成人高清伦理免费影院在线观看| 国产精品中文字幕日韩精品| 国产精品69毛片高清亚洲| www.亚洲激情.com| 色综合咪咪久久| 欧美精品一卡二卡| 久久亚洲综合av| 亚洲精品ww久久久久久p站| 亚洲午夜精品网| 久久99久久久久| hitomi一区二区三区精品| 91在线你懂得| 精品卡一卡二卡三卡四在线| 国产精品久久一级| 美女网站在线免费欧美精品| 国产一区二区三区电影在线观看| 国产精品66部| 在线观看欧美日本| 欧美乱熟臀69xxxxxx| 不卡免费追剧大全电视剧网站| 国产精品一级在线| 欧美亚洲一区二区在线观看| 欧美日韩一区二区电影| 久久色中文字幕| 亚洲第一久久影院| 成人网男人的天堂| 精品久久久久一区二区国产| 亚洲与欧洲av电影| av电影在线观看一区| 久久蜜桃av一区二区天堂| 日韩黄色一级片| 99re在线精品| 久久女同精品一区二区| 免费xxxx性欧美18vr| 色婷婷综合中文久久一本| 国产精品久久久久影视| 国产精品一级黄| 国产日韩欧美a| 成人免费不卡视频| 国产亚洲欧美日韩日本| 国产精品一二三四区| 国产欧美日韩一区二区三区在线观看 | 精品免费国产二区三区| 黑人精品欧美一区二区蜜桃| 26uuu亚洲婷婷狠狠天堂| 蜜桃视频在线观看一区| 国产午夜精品福利| 国产91色综合久久免费分享| 亚洲欧洲日本在线| 日本韩国一区二区| 男人的天堂亚洲一区| 久久久精品国产99久久精品芒果| 福利一区二区在线观看| 亚洲已满18点击进入久久| 欧美日韩在线直播| 毛片一区二区三区| 亚洲人成在线观看一区二区| 欧美日韩国产精品自在自线| 日韩电影在线观看电影| 日韩写真欧美这视频| eeuss鲁一区二区三区| 日韩电影一区二区三区四区| 2023国产精品自拍| 欧美二区乱c少妇| 久久99国产精品尤物| 一区二区三区中文字幕在线观看| 777久久久精品| av电影在线观看不卡| 日韩av在线发布| 亚洲影院久久精品| 国产精品三级视频| 亚洲精品一区二区三区精华液| 91在线一区二区三区| 婷婷丁香激情综合| 亚洲精品成人天堂一二三| 久久久美女毛片| 日韩一区二区免费在线电影| 一本色道久久综合亚洲91| 国产aⅴ综合色| 国产成人av在线影院| 久久99国内精品| 国产在线播精品第三| 极品少妇xxxx精品少妇| 麻豆精品久久久| 精品一区二区免费在线观看| 青娱乐精品视频在线| 久久成人免费网| 日韩精品乱码av一区二区| 午夜一区二区三区视频| 日韩和欧美的一区| 久久精品国产精品亚洲红杏| 蜜乳av一区二区| 高清shemale亚洲人妖| 国产高清精品网站| 色天使久久综合网天天| 在线不卡中文字幕播放| 91精品免费观看| 中文字幕欧美国产| 亚洲乱码国产乱码精品精可以看| 午夜伦欧美伦电影理论片| 国模冰冰炮一区二区| 精品中文字幕一区二区小辣椒| 亚洲婷婷在线视频|