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

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

?? rainbowtablegenerate.cpp

?? Rainbow加密算法的Crack程序
?? CPP
字號:
/*
   RainbowCrack - a general propose implementation of Philippe Oechslin's faster time-memory trade-off technique.

   Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>
*/

#ifdef _WIN32
	#pragma warning(disable : 4786)
#endif

#ifdef _WIN32
	#include <windows.h>
#else
	#include <unistd.h>
#endif
#include <time.h>

#include "ChainWalkContext.h"

void Usage()
{
	Logo();

	printf("usage: rtgen hash_algorithm \\\n");
	printf("             plain_charset plain_len_min plain_len_max \\\n");
	printf("             rainbow_table_index \\\n");
	printf("             rainbow_chain_length rainbow_chain_count \\\n");
	printf("             file_title_suffix\n");
	printf("       rtgen hash_algorithm \\\n");
	printf("             plain_charset plain_len_min plain_len_max \\\n");
	printf("             rainbow_table_index \\\n");
	printf("             -bench\n");
	printf("\n");

	CHashRoutine hr;
	printf("hash_algorithm:       available: %s\n", hr.GetAllHashRoutineName().c_str());
	printf("plain_charset:        use any charset name in charset.txt here\n");
	printf("                      use \"byte\" to specify all 256 characters as the charset of the plaintext\n");
	printf("plain_len_min:        min length of the plaintext\n");
	printf("plain_len_max:        max length of the plaintext\n");
	printf("rainbow_table_index:  index of the rainbow table\n");
	printf("rainbow_chain_length: length of the rainbow chain\n");
	printf("rainbow_chain_count:  count of the rainbow chain to generate\n");
	printf("file_title_suffix:    the string appended to the file title\n");
	printf("                      add your comment of the generated rainbow table here\n");
	printf("-bench:               do some benchmark\n");

	printf("\n");
	printf("example: rtgen lm alpha 1 7 0 100 16 test\n");
	printf("         rtgen md5 byte 4 4 0 100 16 test\n");
	printf("         rtgen sha1 numeric 1 10 0 100 16 test\n");
	printf("         rtgen lm alpha 1 7 0 -bench\n");
}

void Bench(string sHashRoutineName, string sCharsetName, int nPlainLenMin, int nPlainLenMax, int nRainbowTableIndex)
{
	// Setup CChainWalkContext
	if (!CChainWalkContext::SetHashRoutine(sHashRoutineName))
	{
		printf("hash routine %s not supported\n", sHashRoutineName.c_str());
		return;
	}
	if (!CChainWalkContext::SetPlainCharset(sCharsetName, nPlainLenMin, nPlainLenMax))
		return;
	if (!CChainWalkContext::SetRainbowTableIndex(nRainbowTableIndex))
	{
		printf("invalid rainbow table index %d\n", nRainbowTableIndex);
		return;
	}

	// Bench hash
	{
	CChainWalkContext cwc;
	cwc.GenerateRandomIndex();
	cwc.IndexToPlain();

	clock_t t1 = clock();
	int nLoop = 2500000;
	int i;
	for (i = 0; i < nLoop; i++)
		cwc.PlainToHash();
	clock_t t2 = clock();
	float fTime = 1.0f * (t2 - t1) / CLOCKS_PER_SEC;

	printf("%s hash speed: %d / s\n", sHashRoutineName.c_str(), int(nLoop / fTime));
	}

	// Bench step
	{
	CChainWalkContext cwc;
	cwc.GenerateRandomIndex();

	clock_t t1 = clock();
	int nLoop = 2500000;
	int i;
	for (i = 0; i < nLoop; i++)
	{
		cwc.IndexToPlain();
		cwc.PlainToHash();
		cwc.HashToIndex(i);
	}
	clock_t t2 = clock();
	float fTime = 1.0f * (t2 - t1) / CLOCKS_PER_SEC;

	printf("%s step speed: %d / s\n", sHashRoutineName.c_str(), int(nLoop / fTime));
	}
}

int main(int argc, char* argv[])
{
	if (argc == 7)
	{
		if (strcmp(argv[6], "-bench") == 0)
		{
			Bench(argv[1], argv[2], atoi(argv[3]), atoi(argv[4]), atoi(argv[5]));
			return 0;
		}
	}

	if (argc != 9)
	{
		Usage();
		return 0;
	}

	string sHashRoutineName  = argv[1];
	string sCharsetName      = argv[2];
	int nPlainLenMin         = atoi(argv[3]);
	int nPlainLenMax         = atoi(argv[4]);
	int nRainbowTableIndex   = atoi(argv[5]);

	int nRainbowChainLen     = atoi(argv[6]);
	int nRainbowChainCount   = atoi(argv[7]);
	string sFileTitleSuffix  = argv[8];

	// nRainbowChainCount check
	if (nRainbowChainCount >= 134217728)
	{
		printf("this will generate a table larger than 2GB, which is not supported\n");
		printf("please use a smaller rainbow_chain_count(less than 134217728)\n");
		return 0;
	}

	// Setup CChainWalkContext
	if (!CChainWalkContext::SetHashRoutine(sHashRoutineName))
	{
		printf("hash routine %s not supported\n", sHashRoutineName.c_str());
		return 0;
	}
	if (!CChainWalkContext::SetPlainCharset(sCharsetName, nPlainLenMin, nPlainLenMax))
		return 0;
	if (!CChainWalkContext::SetRainbowTableIndex(nRainbowTableIndex))
	{
		printf("invalid rainbow table index %d\n", nRainbowTableIndex);
		return 0;
	}
	CChainWalkContext::Dump();

	// Low priority
#ifdef _WIN32
	SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_IDLE);
#else
	nice(19);
#endif

	// FileName
	char szFileName[256];
	sprintf(szFileName, "%s_%s#%d-%d_%d_%dx%d_%s.rt", sHashRoutineName.c_str(),
													  sCharsetName.c_str(),
													  nPlainLenMin,
													  nPlainLenMax,
													  nRainbowTableIndex,
													  nRainbowChainLen,
													  nRainbowChainCount,
													  sFileTitleSuffix.c_str());

	// Open file
	fclose(fopen(szFileName, "a"));
	FILE* file = fopen(szFileName, "r+b");
	if (file == NULL)
	{
		printf("failed to create %s\n", szFileName);
		return 0;
	}

	// Check existing chains
	unsigned int nDataLen = GetFileLen(file);
	nDataLen = nDataLen / 16 * 16;
	if (nDataLen == nRainbowChainCount * 16)
	{
		printf("precomputation of this rainbow table already finished\n");
		fclose(file);
		return 0;
	}
	if (nDataLen > 0)
		printf("continuing from interrupted precomputation...\n");
	fseek(file, nDataLen, SEEK_SET);

	// Generate rainbow table
	printf("generating...\n");
	CChainWalkContext cwc;
	clock_t t1 = clock();
	int i;
	for (i = nDataLen / 16; i < nRainbowChainCount; i++)
	{
		cwc.GenerateRandomIndex();
		uint64 nIndex = cwc.GetIndex();
		if (fwrite(&nIndex, 1, 8, file) != 8)
		{
			printf("disk write fail\n");
			break;
		}

		int nPos;
		for (nPos = 0; nPos < nRainbowChainLen - 1; nPos++)
		{
			cwc.IndexToPlain();
			cwc.PlainToHash();
			cwc.HashToIndex(nPos);
		}

		nIndex = cwc.GetIndex();
		if (fwrite(&nIndex, 1, 8, file) != 8)
		{
			printf("disk write fail\n");
			break;
		}

		if ((i + 1) % 100000 == 0 || i + 1 == nRainbowChainCount)
		{
			clock_t t2 = clock();
			int nSecond = (t2 - t1) / CLOCKS_PER_SEC;
			printf("%d of %d rainbow chains generated (%d m %d s)\n", i + 1,
																	  nRainbowChainCount,
																	  nSecond / 60,
																	  nSecond % 60);
			t1 = clock();
		}
	}

	// Close
	fclose(file);

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色播五月激情综合网| 青青草精品视频| 亚洲一区二区五区| 日韩高清在线一区| 国产伦精品一区二区三区视频青涩 | 亚洲综合色区另类av| 亚洲国产精品久久久久婷婷884| 日韩电影一区二区三区| 国产精品小仙女| 在线亚洲人成电影网站色www| 制服丝袜亚洲精品中文字幕| 久久久国产精华| 午夜精品视频在线观看| 国产成人综合亚洲网站| 欧美亚洲综合网| 久久久精品国产99久久精品芒果| 亚洲免费观看在线视频| 日本v片在线高清不卡在线观看| 成人深夜在线观看| 欧美精品久久99久久在免费线| 国产天堂亚洲国产碰碰| 亚洲电影你懂得| 粉嫩av一区二区三区| 欧美日韩一区小说| 久久看人人爽人人| 图片区日韩欧美亚洲| 成人午夜伦理影院| 日韩三级.com| 亚洲成人av一区二区| 丰满岳乱妇一区二区三区| 欧美一区午夜精品| 一区二区三区小说| 国产91精品露脸国语对白| 在线播放中文字幕一区| 综合久久久久久| 国产真实乱对白精彩久久| 欧美日韩一区三区| 亚洲免费观看高清| 国产福利一区在线| 欧美一区二区三区在线观看视频 | 91一区一区三区| 国产午夜亚洲精品羞羞网站| 天天综合色天天| 在线观看国产一区二区| 欧美国产一区视频在线观看| 蜜桃av一区二区在线观看| 欧美日韩一级大片网址| 亚洲欧美偷拍另类a∨色屁股| 国产成人午夜精品影院观看视频 | 久久国产免费看| 7777精品伊人久久久大香线蕉超级流畅| 中文字幕日本乱码精品影院| 精品一二三四区| 欧美午夜精品久久久久久孕妇| 亚洲同性gay激情无套| 国产aⅴ综合色| 久久久蜜臀国产一区二区| 美国精品在线观看| 日韩欧美国产精品| 青娱乐精品视频| 91精品国产综合久久福利软件| 亚洲国产视频直播| 欧美日本国产视频| 亚洲电影你懂得| 欧美人与禽zozo性伦| 亚洲一区二区三区四区的| 一本大道久久a久久精二百 | 欧美影视一区二区三区| 亚洲乱码中文字幕| 中文字幕制服丝袜一区二区三区| 国产高清不卡一区二区| 久久久国产精品不卡| 国产成人av资源| 国产精品女主播av| 91美女在线观看| 亚洲九九爱视频| 在线观看91精品国产入口| 一区二区三区日韩欧美精品| 色婷婷国产精品综合在线观看| 最新国产精品久久精品| 99精品偷自拍| 亚洲一区二区三区在线看| 欧美日本一区二区| 久久精品国产999大香线蕉| 欧美电视剧在线看免费| 国产一区二区免费看| 国产精品污www在线观看| 菠萝蜜视频在线观看一区| 1000精品久久久久久久久| 色一情一乱一乱一91av| 天天色综合天天| 精品久久久久一区| 懂色av一区二区夜夜嗨| 中文字幕亚洲视频| 欧美在线免费播放| 日韩va亚洲va欧美va久久| 精品日产卡一卡二卡麻豆| 国产99精品国产| 伊人婷婷欧美激情| 在线观看91av| 国产麻豆精品一区二区| 国产精品毛片大码女人| 欧美最新大片在线看| 青青青爽久久午夜综合久久午夜| 久久久久国产精品麻豆ai换脸| 91日韩在线专区| 日韩精品成人一区二区在线| 久久久精品国产免大香伊 | 亚洲一二三四久久| 91精品福利在线一区二区三区| 国产999精品久久久久久绿帽| 亚洲精选在线视频| 欧美成人一区二区三区在线观看| 成人黄色小视频| 偷拍自拍另类欧美| 国产欧美精品一区二区色综合 | 亚洲制服丝袜一区| 精品国产91乱码一区二区三区 | 亚洲欧美日韩中文字幕一区二区三区 | 国产亚洲精品久| 在线观看日韩av先锋影音电影院| 久久66热re国产| 亚洲美女屁股眼交| xnxx国产精品| 欧美亚一区二区| 国产精品一区二区91| 亚洲一区二区成人在线观看| 26uuuu精品一区二区| 欧美这里有精品| 国产精品一区2区| 首页国产欧美久久| 亚洲欧洲av色图| 久久婷婷国产综合国色天香| 欧洲激情一区二区| 福利一区福利二区| 免费观看在线综合| 亚洲免费在线视频| 国产欧美日韩精品在线| 日韩午夜精品视频| 欧美日韩一区二区在线观看 | 亚洲欧洲在线观看av| 日韩一区二区三区三四区视频在线观看| 91视频你懂的| 国产成人午夜精品5599| 蜜桃av噜噜一区| 亚洲成人7777| 亚洲三级电影网站| 欧美经典三级视频一区二区三区| 91精品福利在线一区二区三区 | 亚洲福利一区二区| 国产精品理论在线观看| 亚洲精品一区二区三区福利| 欧美三级三级三级爽爽爽| 99国产一区二区三精品乱码| 国产一区在线精品| 久久99久久久久久久久久久| 亚洲图片自拍偷拍| 亚洲激情男女视频| 国产精品伦一区二区三级视频| 精品欧美乱码久久久久久| 69堂成人精品免费视频| 欧美曰成人黄网| 色婷婷久久综合| 色婷婷综合中文久久一本| 粉嫩av一区二区三区在线播放| 国产一区二区三区高清播放| 久久精品国产网站| 蜜臀精品一区二区三区在线观看| 亚洲第一精品在线| 亚洲最大成人网4388xx| 亚洲黄色尤物视频| 亚洲精品大片www| 亚洲精品国久久99热| 综合自拍亚洲综合图不卡区| 国产精品天天看| 中文字幕精品一区二区精品绿巨人| 久久婷婷综合激情| 精品精品欲导航| 精品1区2区在线观看| 日韩欧美国产成人一区二区| 日韩精品一区二区在线观看| 日韩一区二区三区三四区视频在线观看| 91精品综合久久久久久| 91精品免费在线观看| 91精品国产91综合久久蜜臀| 日韩亚洲欧美高清| 精品国产伦理网| 久久亚洲欧美国产精品乐播 | 成人晚上爱看视频| www..com久久爱| 色网站国产精品| 欧美日韩亚洲综合一区二区三区| 欧美日韩视频在线一区二区| 欧美在线啊v一区| 91精品国产免费| 久久久久久久久久久久电影| 欧美高清一级片在线观看| 国产精品网站在线观看| 亚洲狠狠丁香婷婷综合久久久| 亚洲国产综合在线|