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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cryrand.cal

?? 早期freebsd實(shí)現(xiàn)
?? CAL
?? 第 1 頁 / 共 5 頁
字號(hào):
	    ret = ((ret << 64) | shufrand());	}	/* load the highest chunk */	ret <<= (highbit(finalmask)+1);	ret |= (shufrand() >> (64-highbit(finalmask)-1));    } while (ret >= range);    /*     * return the adjusted range value     */    return(ret+offset);}/* * srand - seed the pseudo-random additive 55 generator * * input: *	seed * * returns: *	old_seed * * This function actually seeds the shuffle generator (and indirectly * the additive 55 generator used by rand() and a55rand(). * * See sshufrand() and sa55rand() for information about a seed. * * There is no limit on the size of a seed.  On the other hand, * extremely large seeds require large tables and long seed times. * Using a seed in the range of [2^64, 2^64 * 128!) should be * sufficient for most purposes.  An easy way to stay within this * range to to use seeds that are between 21 and 215 digits long, or * 64 to 780 bits long. * * NOTE: This is NOT Blum's method.  This is used by Blum's method to *       generate some internal values. * * NOTE: If you do not need a crypto strong pseudo-random generator *	 this function may very well serve your needs. */definesrand(seed){    if (!isint(seed)) {	quit "bad arg: seed must be an integer";    }    if (seed < 0) {	quit "bad arg: seed < 0 is reserved for future use";    }    return(sshufrand(seed));}/* * cryrand - cryptographically strong pseudo-random number generator * * usage: *	cryrand(len) * * given: *	len	    number of pseudo-random bits to generate * * returns: *	a cryptographically strong pseudo-random number of len bits * * 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() or srandom() will clear out all * unused bits.  Thus: * *	scryrand(0);			<-- restore generator to initial state *	cryrand(16);			<-- 16 bits * * will produce the same value as: * *	scryrand(0);			<-- restore generator to initial state *	cryrand(4)<<12 | cryrand(12);	<-- 4+12 = 16 bits * * and will produce the same value as: * *	scryrand(0);			<-- restore generator to initial state *	cryrand(3)<<13 | cryrand(7)<<6 | cryrand(6);	<-- 3+7+6 = 16 bits * * The crypto generator is not as fast as most generators, though it is not * painfully slow either. * * NOTE: This function is the Blum cryptographically strong *	 pseudo-random number generator. */definecryrand(len){    local goodbits;	/* the number of good bits generated each pass */    local goodmask;	/* mask for the low order good bits */    local randval;	/* pseudo-random value being generated */    /*     * firewall     */    if (!isint(len) || len < 1) {	quit "bad arg: len must be an integer > 0";    }    /*     * Determine how many bits may be generated each pass.     *     * The result by Alexi et. al., says that the log2(log2(n=p*q))     * least significant bits are secure, where log2(x) is log base 2.     */    goodbits = highbit(highbit(cryrand_n));    goodmask = (1 << goodbits)-1;    /*     * If we have bits left over from the previous call, collect     * them now.     */    if (cryrand_bitcnt > 0) {	/* case where the left over bits are enough for this call */	if (len <= cryrand_bitcnt) {	    /* we need only len bits */	    randval = (cryrand_left >> (cryrand_bitcnt-len));	    /* save the unused bits for later use */	    cryrand_left &= ((1 << (cryrand_bitcnt-len))-1);	    /* save away the number of bits that we will not use */	    cryrand_bitcnt -= len;	    /* return our complete result */	    return(randval);	/* case where we need more than just the left over bits */	} else {	    /* clear out the number of left over bits */	    len -= cryrand_bitcnt;	    cryrand_bitcnt = 0;	    /* collect all of the left over bits for now */	    randval = cryrand_left;	}    /* case where we have no previously left over bits */    } else {	randval = 0;    }    /*     * Pump out len cryptographically strong pseudo-random bits,     * 'goodbits' at a time using Blum's process.     */    while (len >= goodbits) {	/* generate the bits */	cryrand_exp = (cryrand_exp^2) % cryrand_n;	randval <<= goodbits;	randval |= (cryrand_exp & goodmask);	/* reduce the need count */	len -= goodbits;    }    /* if needed, save the unused bits for later use */    if (len > 0) {	/* generate the bits */	cryrand_exp = (cryrand_exp^2) % cryrand_n;	randval <<= len;	randval |= ((cryrand_exp&goodmask) >> (goodbits-len));	/* save away the number of bits that we will not use */	cryrand_left = cryrand_exp & ((1 << (goodbits-len))-1);	cryrand_bitcnt = goodbits-len;    }    /*     * return our pseudo-random bits     */     return(randval);}/* * scryrand - seed the cryptographically strong pseudo-random number generator * * usage: *	scryrand(seed) *	scryrand() *	scryrand(seed,len1,len2) *	scryrand(seed,ip,iq,ir) * * input: *	[seed		pseudo-random seed *	[len1 len2]	minimum bit length of the Blum primes 'p' and 'q' *			-1 => default lengths *	[ip iq ir]	Initial search values for Blum primes 'p', 'q' and *			a quadratic residue 'r' * * returns: *	the previous seed * * * This function will seed and setup the generator needed to produce * cryptographically strong pseudo-random numbers.  See the function * a55rand() and sshufrand() for information about how 'seed' works. * * The first form of this function are fairly fast if the seed is not * excessively large.  The second form is also fairly fast if the internal * primes are not too large.  The third form, can take a long time to call. * (see below)   The fourth form, if the 'seed' arg is not -1, can take * as long as the third form to call.  If the fourth form is called with * a 'seed' arg of -1, then it is fairly fast. * * Calling scryrand() with 1 or 3 args (first and third forms), or * calling srandom(), or calling scryrand() with 4 args with the first * arg >0, will leave the shuffle generator in a seeded state as if * sshufrand(seed) has been called. * * Calling scryrand() with no args will not seed the shuffle generator, * before or afterwards, however the shuffle generator will have been * changed as a side effect of that call. * * Calling scryrand() with 4 args where the first arg is 0 or '-1' * will not change the other generators. * * * First form of call:  scryrand(seed) * * The first form of this function will seed the shuffle generator * (via srand).  The default precomputed constants will be used. * * * Second form of call:  scryrand() * * Only a new quadratic residue of n=p*q is recomputed.  The previous prime * values are kept. * * Unlike the first and second forms of this function, the shuffle * generator function is not seeded before or after the call.  The * current state is used to generate a new quadratic residue of n=p*q. * * * Third form of call:  scryrand(seed,len1,len2) * * In the third form, 'len1' and 'len2' guide this function in selecting * internally used prime numbers.  The larger the lengths, the longer * the time this function will take.  The impact on execution time of * cryrand() and random() may also be noticed, but not as much. * * If a length is '-1', then the default lengths (248 for len1, and 264 * for len2) are used.  The call scryrand(0,-1,-1) recreates the initial * crypto state the slow and hard way.  (use scryrand(0) or srandom(0)) * * This function can take a long time to call given reasonable values * of len1 and len2.  On an R3000, the time to seed was: * *	Approx value	digits   seed time *      of len1+len2   in n=p*q	   in sec *	------------   --------	   ------ *	      8		   3	     0.53 *	     16		   5	     0.54 *	     32		  10	     0.79 *	     64		  20	     1.17 *	    128		  39	     2.89 *	    200		  61	     4.68 *	    256		  78	     7.49 *	    322		 100	    12.47 *	    464		 140	    35.56 *	    512		 155	    53.57 *	    664		 200	    83.97 *	    830		 250	   122.93 *	    996		 300	   242.49 *	   1024		 309	   295.66 *	   1328		 400	   663.44 *	   1586		 478	  2002.10 *	   1660		 500	  1643.45  (Faster mult/square methods kick in *	   1992		 600	  2885.81   in certain cases. Type  help config *	   2048		 617	  1578.06   in calc for more details.) * *	 NOTE: The small lengths above are given for comparison *	       purposes and are NOT recommended for actual use. * *	 NOTE: Generating crypto pseudo-random numbers is MUCH *	       faster than seeding a crypto generator. * *	 NOTE: This calc lib file is intended for demonstration *	       purposes.  Writing a C program (with possible assembly *	       or libmp assist) would produce a faster generator. * * * Fourth form of call:  scryrand(seed,ip,iq,ir) * * In the fourth form, 'ip', 'iq' and 'ir' serve as initial search * values for the two Blum primes 'p' and 'q' and an associated * quadratic residue 'r' respectively.  Unlike the 3rd form, where * lengths are given, the fourth form allows one to specify minimum * search values. * * The 'seed' value is interpreted as follows: * *   If seed > 0: * *	Seed and use the shuffle generator to generate 3 jump values *	that are in the range '[0,ip)', '[0,iq)' and '[0,ir)' respectively. *	Start searching for legal 'p', 'q' and 'r' values by adding *	the jump values to their respective argument values. * *   If seed == 0: * *	Start searching for legal 'p', 'q' and 'r' values from *	'ip', 'iq' and 'ir' respectively. * *	This form does not change/seed the other generators. * *   If seed == -1: * *	Let 'p' == 'ip', 'q' == 'iq' and 'r' == 'ir'.  Do not check *	if the value given are legal Blum primes or an associated *	quadratic residue respectively. * *	This form does not change/seed the other generators. * *	WARNING: No checks are performed on the args passed. *		 Passing improper values will likely produce *		 poor results, or worse! * * * It should be noted that calling scryrand() while using the default * primes took only 0.04 seconds.  Calling scryrand(0,-1,-1) took * 47.19 seconds. * * The paranoid, when giving explicit lengths, should keep in mind that * len1 and len2 are the largest powers of 2 that are less than the two * probable primes ('p' and 'q').  These two primes  will be used * internally to cryrand().  For simplicity, we refer to len1 and len2 * as bit lengths, even though they are actually 1 less then the * minimum possible prime length. * * The actual lengths may exceed the lengths by slightly more than 3%. * Furthermore, part of the strength of this generator rests on the * difficultly to factor 'p*q'.  Thus one should select 'len1' and 'len2' * (from which 'p' and 'q' are selected) such that factoring a 'len1+len2' * bit number is difficult. * * Not being able to factor 'n=p*q' into 'p' and 'q' does not directly * improve the crypto generator.  On the other hand, it can't hurt. * * There is no limit on the size of a seed.  On the other hand, * extremely large seeds require large tables and long seed times. * Using a seed in the range of [2^64, 2^64 * 128!) should be * sufficient for most purposes.  An easy way to stay within this * range to to use seeds that are between 21 and 215 digits long, or * 64 to 780 bits long. * * NOTE: This function will clear any internally buffer bits.  See *	 cryrand() for details. * * NOTE: This function seeds the Blum cryptographically strong *	 pseudo-random number generator. */definescryrand(seed,len1,len2,arg4){    local rval;		/* a temporary pseudo-random value */    local oldseed;	/* the previous seed */    local newres;	/* the new quad res */    local ip;		/* initial Blum prime 'p' search value */    local iq;		/* initial Blum prime 'q' search value */    local ir;		/* initial quadratic residue search value */    local sqir;		/* square of ir mod n */    local minres;	/* minimum residue allowed */    local maxres;	/* maximum residue allowed */    /*

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产污网站| 日韩高清不卡在线| 国产精品成人一区二区艾草| 精品乱人伦小说| 精品免费视频一区二区| 日韩一本二本av| 日韩欧美二区三区| 久久影视一区二区| 国产网站一区二区| 亚洲欧洲一区二区在线播放| 亚洲视频在线一区| 亚洲一区二区高清| 蜜桃久久久久久| 国产中文字幕精品| av电影在线观看完整版一区二区| 91精品福利在线| 一区二区三区欧美视频| 1024成人网色www| 亚洲视频图片小说| 亚洲愉拍自拍另类高清精品| 午夜欧美在线一二页| 日本欧美一区二区| 国产精品一品二品| 91传媒视频在线播放| 欧美日韩国产大片| 久久久久国产精品厨房| 中文字幕亚洲成人| 日韩黄色免费电影| 国产成人精品综合在线观看| 色激情天天射综合网| 欧美一级一级性生活免费录像| 久久综合色之久久综合| 国产精品欧美精品| 午夜影视日本亚洲欧洲精品| 精油按摩中文字幕久久| 成人性色生活片| 欧美日韩久久不卡| 久久这里只精品最新地址| 日韩毛片一二三区| 日韩在线一区二区三区| 懂色av一区二区夜夜嗨| 欧美老肥妇做.爰bbww视频| 久久夜色精品国产噜噜av | 久久精品水蜜桃av综合天堂| 日韩美女视频一区| 麻豆精品新av中文字幕| 99久久99久久免费精品蜜臀| 欧美一区二区三区免费观看视频| 久久久亚洲综合| 亚洲va欧美va人人爽午夜| 国产精品 欧美精品| 欧美日韩视频专区在线播放| 亚洲蜜臀av乱码久久精品蜜桃| 欧美久久久久久蜜桃| 国产欧美一区二区三区在线老狼| 亚洲成人久久影院| 成人免费视频国产在线观看| 欧美精品v日韩精品v韩国精品v| 欧美国产精品专区| 日本午夜一本久久久综合| 99免费精品在线| 精品国产一区二区三区不卡| 亚洲网友自拍偷拍| 粉嫩av一区二区三区在线播放 | 色哟哟一区二区| 久久久久国产精品人| 视频一区视频二区中文字幕| 国产成人亚洲综合a∨猫咪| 9191久久久久久久久久久| 中文字幕一区二区三区四区| 久久国产精品色婷婷| 欧美日韩不卡在线| **性色生活片久久毛片| 国内精品第一页| 欧美一级片免费看| 亚洲国产欧美一区二区三区丁香婷| 成人午夜电影久久影院| 精品国产电影一区二区| 视频一区免费在线观看| 色婷婷av久久久久久久| 国产精品成人免费在线| 大白屁股一区二区视频| 久久久久久毛片| 极品美女销魂一区二区三区| 欧美一区二区成人6969| 亚洲成人免费在线| 在线观看国产精品网站| 亚洲精品乱码久久久久久日本蜜臀| 成人一道本在线| 日本一区二区三级电影在线观看| 国产自产高清不卡| 精品日韩在线观看| 麻豆视频一区二区| 日韩女优av电影| 久久99精品国产91久久来源| 欧美一区在线视频| 男男成人高潮片免费网站| 欧美浪妇xxxx高跟鞋交| 丝袜亚洲另类丝袜在线| 欧美高清性hdvideosex| 亚洲电影欧美电影有声小说| 欧美日韩美少妇| 视频一区中文字幕| 日韩一区二区三区视频在线| 麻豆精品视频在线观看| 精品国产成人系列| 国产精品99久| 国产精品沙发午睡系列990531| 成人免费高清视频在线观看| 国产精品久久久久久久岛一牛影视| 成人av资源站| 夜夜揉揉日日人人青青一国产精品| 日本韩国欧美在线| 日韩和的一区二区| 精品精品国产高清一毛片一天堂| 国产精品 欧美精品| 国产精品福利在线播放| 色8久久精品久久久久久蜜| 亚洲午夜一区二区| 日韩欧美www| 国产91露脸合集magnet| 国产精品白丝在线| 欧美性感一类影片在线播放| 视频一区在线播放| 亚洲精品在线网站| 99视频在线观看一区三区| 亚洲一区日韩精品中文字幕| 9191成人精品久久| 国产传媒一区在线| 亚洲黄色小说网站| 欧美一二三区在线观看| 国产精品小仙女| 亚洲乱码日产精品bd| 91精品一区二区三区久久久久久| 国产美女在线观看一区| 亚洲人成伊人成综合网小说| 777午夜精品免费视频| 国产成人在线影院| 亚洲影院在线观看| 精品国产一区二区亚洲人成毛片| 波多野结衣欧美| 日韩专区在线视频| 国产精品天天看| 欧美群妇大交群中文字幕| 国产精品自拍av| 亚洲综合色成人| 国产视频一区在线播放| 欧美三级中文字幕在线观看| 九九热在线视频观看这里只有精品| 亚洲欧洲日韩女同| 欧美一级夜夜爽| 色婷婷av一区二区三区软件| 麻豆视频一区二区| 亚洲黄一区二区三区| 久久综合狠狠综合久久激情| 色婷婷亚洲综合| 国产成人一级电影| 日韩国产一区二| 一区二区免费视频| 国产欧美综合在线观看第十页| 精品视频免费看| 成人av免费观看| 狠狠色狠狠色综合| 丝袜亚洲另类欧美| 亚洲青青青在线视频| 2020国产精品自拍| 4438成人网| 色婷婷亚洲精品| 成人黄色电影在线| 久久超级碰视频| 亚洲成a人在线观看| 中文字幕日韩av资源站| 久久久久久久久蜜桃| 欧美日韩国产一区| 色综合婷婷久久| 成人黄色a**站在线观看| 韩国女主播一区二区三区| 亚洲成人一区在线| 亚洲免费视频成人| 国产精品沙发午睡系列990531| 精品久久五月天| 日韩一级片网站| 69成人精品免费视频| 欧美自拍丝袜亚洲| 一本久道久久综合中文字幕| 成人av电影在线| 成人性视频免费网站| 国产一区二区精品在线观看| 乱一区二区av| 青青国产91久久久久久 | 91在线视频播放地址| 国产精品一卡二| 国产呦萝稀缺另类资源| 久久99精品视频| 麻豆91免费观看| 麻豆91在线观看| 久久不见久久见免费视频1| 日产国产欧美视频一区精品| 日韩激情一二三区| 三级亚洲高清视频|