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

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

?? cryrand.cal

?? 早期freebsd實現
?? CAL
?? 第 1 頁 / 共 5 頁
字號:
     * firewall - avoid bogus args and very trivial lengths     */    /* catch the case of no args - compute a different quadratic residue */    if (isnull(seed) && isnull(len1) && isnull(len2)) {	/* generate the next quadratic residue */	do {	    newres = cryres(cryrand_n);	} while (newres == cryrand_r);	cryrand_r = newres;	cryrand_exp = cryrand_r;	/* clear the internal bits */	cryrand_left = 0;	cryrand_bitcnt = 0;	/* return the current seed early */	return (cry_seed);    }    if (!isint(seed)) {	quit "bad arg: seed arg (1st) must be an integer";    }    if (param(0) == 4) {	if (seed < -1) {	    quit "bad arg: with 4 args: a seed < -1 is reserved for future use";	}    } else if (param(0) > 0 && seed < 0) {	quit "bad arg: a seed arg (1st) < 0 is reserved for future use";    }    /*     * 4 arg case: select or search for 'p', 'q' and 'r' from given values     */    if (param(0) == 4) {	/* set initial values */	ip = len1;	iq = len2;	ir = arg4;	/*	 * Unless prohibited by a seed of -1, force minimum values on	 * 'ip', 'iq' and 'ir'.	 */	if (seed >= 0) {	    /*	     * Due to the initial quadratic residue selection process,	     * the smallest Blum prime that is usable is 19.  This	     * in turn implies that the smallest 'n' is 19*19 = 361.	     * This in turn imples that the smallest initial residue	     * that is possible is 128 (for the value 'n = 23*23 = 529).	     */	    if (!isint(ip) || ip < 19) {	       ip = 19;	    }	    if (!isint(iq) || iq < 19) {	       iq = 19;	    }	    if (!isint(ir) || ir < 128) {	       ir = 128;	    }	}	/*	 * Determine our prime search points	 *	 * Unless we have a seed <= 0, we will add a random 64 bit	 * value to the initial search points.	 */	if (seed > 0) {	    /* add in a random value */	    oldseed = srand(seed);	    ip += rand(ip);	    iq += rand(iq);	}	/*	 * force ip <= iq	 */	if (ip > iq) {	    swap(ip, iq);	}	/*	 * find the first Blum prime 'p'	 */	if (seed >= 0) {	    cryrand_p = nxtprime(ip,3,4);	} else {	    /* seed == -1: assume 'ip' is a Blum prime */	    cryrand_p = ip;	}	/*	 * find the 2nd Blum prime 'q' > 'p', if needed	 */	if (seed >= 0) {	    if (iq <= cryrand_p) {		iq = cryrand_p + 2;	    }	    cryrand_q = nxtprime(iq,3,4);	} else {	    /* seed == -1: assume 'iq' is a Blum prime */	    cryrand_q = iq;	}	/* remember our p*q Blum prime product as well */	cryrand_n = cryrand_p*cryrand_q;	/*	 * search for a quadratic residue	 */	if (seed >= 0) {	    /* 	     * add in a random value to 'ir' if seeded 	     *	     * Unless we have a seed <= 0, we will add a random 64 bit	     * value to the initial search point.	     */	    if (seed > 0) {		ir += rand(ir);	    }	    /*	     * increment until we find a quadratic value	     *	     * p is prime and J(r,p) == 1  ==>  r is a quadratic residue of p	     * q is prime and J(q,p) == 1  ==>  r is a quadratic residue of q	     *	     * J(r,p)*J(r,q) == J(r,p*q)	     * J(r,p) and J(q,p) == 1	   ==>  J(r,p*q) == 1	     * J(r,p*q) == 1		   ==>  r is a quadratic residue of p*q	     *	     * We could simply compute the square of a value mod n like	     * we do in cryres(), but here we want to climb a little higher 	     * than the ir value given.  We will start sequentially searching	     * values starting at the initial search point 'ir', while at	     * same time confining our search to the interval [2^sqrpow,n-100],	     * where 2^sqrpow is the smallest power of 2 >= n^(3/4).  This	     * range helps us avoid selecting trivial residues.	     *	     * We will also reject any quadratic residue whose square mod n 	     * is outside of the [2^sqrpow,n-100] range, or whose square mod n 	     * is within 100 of itself.	     */	    minres = 2^(highbit(floor(power(cryrand_n,0.75)))+1);	    maxres = cryrand_n - 100;	    --ir;	    do {		/* consdier the next residue that is in the allowed range */		++ir;		if (ir < minres || ir > maxres) {		    ir = minres;		}		sqir = pmod(ir, 2, cryrand_n);	    } while (jacobi(ir,cryrand_p) != 1 || 		\	    	     jacobi(ir,cryrand_q) != 1 ||		\		     sqir < minres || sqir > maxres ||		\		     abs(sqir-ir) <= 100);	}	cryrand_r = ir;	/*	 * clear the previously unused cryrand bits & other misc setup	 */	cryrand_left = 0;	cryrand_bitcnt = 0;	cryrand_exp = cryrand_r;	/*	 * reseed the generator, if needed	 *	 * The crypto generator no longer needs the additive 55 and shuffle	 * generators.  We however, restore the additive 55 and shuffle	 * generators back to its seeded state in order to be sure that it	 * will be left in the same state.	 *	 * This will make more reproducible, calls to the additive 55 and	 * shuffle generator; or more reproducible, calls to this function	 * without args.	 */	if (seed > 0) {	    ir = srand(seed);   /* ignore this return value */	    return(oldseed);	} else {	    /* no seed change, return the current seed */	    return (cry_seed);	}    }    /*     * If not the 4 arg case:     *     * convert explicit -1 args into default values     * convert missing args into -1 values (use precomputed tables)     */    if ((isint(len1) && len1 != -1 && len1 < 5) ||	(isint(len2) && len2 != -1 && len2 < 5) ||	(!isint(len1) && isint(len2)) ||	(isint(len1) && !isint(len2))) {	quit "bad args: 2 & 3: if 2nd is given, must be -1 or ints > 4";    }    if (isint(len1) && len1 == -1) {	len1 = 248;	/* default len1 value */    }    if (isint(len2) && len2 == -1) {	len2 = 264;	/* default len2 value */    }    if (!isint(len1) && !isint(len2)) {	/* from here down, -1 means use precomputed values */	len1 = -1;	len2 = -1;    }    /*     * force len1 <= len2     */    if (len1 > len2) {	swap(len1, len2);    }    /*     * seed the generator     */    oldseed = srand(seed);    /*     * generate p and q Blum primes     *     * The Blum process requires the primes to be of the form 3 mod 4.     * We also generate n=p*q for future reference.     *     * We make sure that the lengths are the minimum lengths possible.     * We want some range to select a random prime from, so we     * go at least 3 bits higher, and as much as 3% plus 3 bits     * higher.  Since the section is a random, how high really     * does not matter that much, but we want to avoid going to     * an extreme to keep the execution time from getting too long.     *     * Finally, we generate a quadratic residue of n=p*q.     */    if (len1 > 0) {	/* generate a pseudo-random prime ~len1 bits long */	rval = rand(2^(len1-1), 2^((int(len1*1.03))+3));	cryrand_p = nxtprime(rval,3,4);    } else {	/* use precomputed 'p' value */	cryrand_p = cryrand_init_p;    }    if (len2 > 0) {	/* generate a pseudo-random prime ~len1 bits long */	rval = rand(2^(len2-1), 2^((int(len2*1.03))+3));	cryrand_q = nxtprime(rval,3,4);    } else {	/* use precomputed 'q' value */	cryrand_q = cryrand_init_q;    }    /*     * find the quadratic residue     */    cryrand_n = cryrand_p*cryrand_q;    if (len1 == 248 && len2 == 264 && seed == 0) {	cryrand_r = cryrand_init_r;    } else {	cryrand_r = cryres(cryrand_n);    }    /*     * clear the previously unused cryrand bits & other misc setup     */    cryrand_left = 0;    cryrand_bitcnt = 0;    cryrand_exp = cryrand_r;    /*     * reseed the generator     *     * The crypto generator no longer needs the additive 55 and shuffle     * generators.  We however, restore the additive 55 and shuffle     * generators back to its seeded state in order to be sure that it     * will be left in the same state.     *     * This will make more reproducible, calls to the additive 55 and     * shuffle generator; or more reproducible, calls to this function     * without args.     */    /* we do not care about this old seed */    rval = srand(seed);    /*     * return the old seed     */    return(oldseed);}/* * random - a cryptographically strong pseudo-random number generator * * usage: *	random() 	- generate a pseudo-random integer >=0 and < 2^64 *	random(a) 	- generate a pseudo-random integer >=0 and < a *	random(a,b)	- generate a pseudo-random integer >=a and <= b * * returns: *	a large cryptographically strong pseudo-random number  (see usage) * * This function is just another interface to the crypto generator. * (see the cryrand() function). * * When no arguments are given, a pseudo-random number in the half open * interval [0,2^64) is produced.  This form is identical to calling * cryrand(64). * * When 1 argument is given, a pseudo-random number in the half open interval * [0,a) is produced. * * When 2 arguments are given, a pseudo-random number in the closed interval * [a,b] is produced. * * This generator uses the crypto to return a large pseudo-random number. * * The input values a and b, if given, must be integers. * * Internally, bits are produced log2(log2(n=p*q)) at a time.  If a * call to this function does not exhaust all of the collected bits, * the unused bits will be saved away and used at a later call. * Setting the seed via scryrand(), srandom() or cryrand(len,1) * will clear out all unused bits. * * NOTE: The BSD random() function returns only 31 bits, while we return 64. * * NOTE: This function is the Blum cryptographically strong *	 pseudo-random number generator. */definerandom(a,b){    local range;		/* we must generate [0,range) first */    local offset;		/* what to add to get a adjusted range */    local rangebits;		/* the number of bits in range */    local ret;			/* pseudo-random bit value */    /*     * setup and special cases     */    /* deal with the rand() case */    if (isnull(a) && isnull(b)) {	/* no args means return 64 bits */	return(cryrand(64));    }    /* firewall - args, if given must be in integers */    if (!isint(a) || (!isnull(b) && !isint(b))) {	quit "bad args: args, if given, must be integers";    }    /* convert rand(x) into rand(0,x-1) */    if (isnull(b)) {	/* convert call into a closed interval */	b = a-1;	a = 0;	/* firewall - rand(0) should act like rand(0,0) */	if (b == -1) {	    return(0);	}    }    /* determine the range and offset */    if (a >= b) {	/* deal with the case of rand(a,a) */	if (a == b) {	    /* not very random, but it is true! */	    return(a);	}	range = a-b+1;	offset = b;    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品丝袜一区| 亚洲国产乱码最新视频 | 国产精品乱码妇女bbbb| 欧美精品高清视频| 一本一道综合狠狠老| 国产乱子轮精品视频| 亚洲一二三四区| 亚洲一区二区三区小说| 欧美韩国日本不卡| 精品国产不卡一区二区三区| 欧美日本乱大交xxxxx| 欧美天堂一区二区三区| 国产一区二区0| 亚洲国产精品久久不卡毛片| 国产精品女同一区二区三区| 91.com视频| 91精品国模一区二区三区| 在线观看成人小视频| 成人动漫中文字幕| 成人午夜在线免费| 成人精品高清在线| 免费在线观看不卡| 麻豆freexxxx性91精品| 免费观看91视频大全| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩高清在线一区| 日日嗨av一区二区三区四区| 五月天网站亚洲| 日韩av不卡一区二区| 日本91福利区| 国产美女主播视频一区| 国模大尺度一区二区三区| 国产乱人伦偷精品视频免下载| 精品一区二区三区免费观看| 捆绑变态av一区二区三区| 亚洲日本在线观看| 亚洲午夜久久久久久久久电影网| 五月天中文字幕一区二区| 免费成人在线观看| 国产一区二区免费视频| 国产精品综合一区二区三区| 高潮精品一区videoshd| 91视频.com| 91麻豆精品91久久久久同性| 欧美精品 日韩| 日韩一二三区不卡| 久久久久久久综合日本| 综合久久综合久久| 亚洲私人影院在线观看| 一区二区三区国产| 久久精品国产一区二区三 | 久久综合色一综合色88| 国产精品美女久久久久高潮| 亚洲自拍都市欧美小说| 日韩国产欧美在线视频| 国产精品99久久久久久宅男| 91免费视频网址| 91精品久久久久久蜜臀| 2024国产精品| 一区二区三区在线观看国产| 蜜臀av性久久久久蜜臀av麻豆| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 色老头久久综合| 欧美色综合久久| 欧美一级免费大片| 欧美一区二区三区四区视频| 亚洲国产成人午夜在线一区 | 三级欧美在线一区| 国产麻豆精品theporn| 91在线观看地址| 日韩三级中文字幕| 中文字幕日韩一区二区| 亚洲日本va在线观看| 亚洲三级电影网站| 国产一区美女在线| 欧美探花视频资源| 精品国产三级a在线观看| 亚洲欧美偷拍另类a∨色屁股| 久久国产乱子精品免费女| 一本一道久久a久久精品| 久久一区二区视频| 亚洲va欧美va天堂v国产综合| 国产精品99久久久| 欧美一级国产精品| 久久精品一区二区三区av| 午夜电影网亚洲视频| 99精品国产一区二区三区不卡| 欧洲另类一二三四区| 国产亚洲自拍一区| 男人的天堂亚洲一区| 欧美图片一区二区三区| 国产色91在线| 日韩伦理av电影| 久88久久88久久久| 欧美日韩免费视频| 中文字幕第一区二区| 极品少妇xxxx偷拍精品少妇| 欧美日韩免费一区二区三区 | 欧美一区二区大片| 亚洲电影中文字幕在线观看| av一本久道久久综合久久鬼色| 亚洲精品在线一区二区| 人禽交欧美网站| 欧美伦理视频网站| 亚洲一区二区三区视频在线播放| av电影在线观看一区| 欧美一区二区三区视频免费播放| 亚洲一区二区三区四区五区中文 | 国产亚洲人成网站| 丝袜美腿成人在线| 欧美欧美欧美欧美| 亚洲一线二线三线久久久| 国产精品456露脸| 久久精品一区二区三区不卡 | 精品国产一区二区三区不卡| 日韩中文字幕一区二区三区| 欧美色手机在线观看| 亚洲男同1069视频| av不卡一区二区三区| 久久午夜国产精品| 精品一区二区在线观看| 日韩欧美国产电影| 精品写真视频在线观看 | 亚洲线精品一区二区三区八戒| 91麻豆6部合集magnet| 中文字幕第一区| 不卡的av在线播放| 亚洲人亚洲人成电影网站色| 国内精品写真在线观看| 久久精品人人做| 成人小视频在线| 亚洲人吸女人奶水| 欧美午夜片在线看| 亚洲777理论| 日韩免费一区二区三区在线播放| 奇米一区二区三区av| 精品99一区二区| 成人网男人的天堂| 精品第一国产综合精品aⅴ| 国产综合色精品一区二区三区| 久久色中文字幕| 成人网男人的天堂| 成人欧美一区二区三区在线播放| 波多野结衣精品在线| 综合色中文字幕| 不卡欧美aaaaa| 亚洲人成精品久久久久久| 97久久久精品综合88久久| 国产欧美日韩一区二区三区在线观看| 香港成人在线视频| 欧美无乱码久久久免费午夜一区 | 中文字幕亚洲一区二区av在线 | 99热国产精品| 亚洲第一搞黄网站| 制服丝袜亚洲色图| 日韩成人免费电影| 久久精品在这里| 在线观看日韩国产| 狠狠色丁香久久婷婷综合_中| 69精品人人人人| 国产成人在线观看免费网站| 亚洲男人的天堂在线aⅴ视频| 欧美理论电影在线| 天天射综合影视| 精品91自产拍在线观看一区| 99久久精品99国产精品| 日本不卡在线视频| 国产精品色哟哟网站| 欧美午夜不卡视频| 国产成人精品亚洲777人妖| 亚洲国产成人av网| 91精品一区二区三区在线观看| 国产一区二区不卡老阿姨| 中文字幕中文字幕中文字幕亚洲无线| 欧美日韩成人综合在线一区二区| 国产一区二区三区在线观看免费视频 | 亚洲电影一级黄| 精品区一区二区| 色婷婷久久久亚洲一区二区三区| 久久99精品视频| 中文字幕在线观看不卡| 欧美日韩一区视频| 男女性色大片免费观看一区二区 | 国产欧美一区视频| 色哟哟一区二区三区| 国产麻豆视频精品| 午夜精品福利久久久| 欧美国产日韩一二三区| 欧美一区二区黄| av色综合久久天堂av综合| 国内成+人亚洲+欧美+综合在线| 亚洲午夜电影在线| 国产精品福利在线播放| 精品国精品国产| 欧美写真视频网站| 91亚洲永久精品| 国产剧情一区二区三区| 午夜精品爽啪视频| 亚洲精品欧美激情| 亚洲欧美影音先锋|