⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keygen_fhcf_03.cpp

📁 使用miracl大数库实现ELGAMAL算法
💻 CPP
字号:
// KeyGen_FHCF_03.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
extern "C"                    
{
#include "include\miracl.h"
}

int main(int argc, char* argv[])
{
	printf("KeyGen For PdriLl's Keygenme #3\n");
	printf("Cracked By ryOsUkE 2006.06.10\n");
	
	miracl* mir=mirsys(0x64,0x0);
	mir->IOBASE=0x10;
	
	int i;
	
	big p=mirvar(0);
	big g=mirvar(0);
	big y=mirvar(0);
	big x=mirvar(0);
	big n=mirvar(0);
	
	big k=mirvar(0);
	big temp=mirvar(0);
	
	cinstr(p,"B54F430648C6B2A10FFB");
	cinstr(g,"2E0C2DB4FEC8C6299A0C");
	cinstr(y,"4E0F2ACAD51C4CCDFB51");
    cinstr(x,"3F6536A02CD18F3B67D3");	
	cinstr(n,"AC2DB4FEC8C62992DB4F");
	
	while(egcd(p,k,temp)!=1)
		bigrand(p,k);
	
	char name[30];
	printf("Name:");
	scanf("%s",name);
	int len=strlen(name);
	for(i=len;i<30;i++)
		name[i]='*';
	
	big m=mirvar(0);
	bytes_to_big(30,(char*)name,m);
	power(m,2,n,m);
	
	big r=mirvar(0);
	big s=mirvar(0);
	
	powmod(g,k,p,r);	//r=g^k mod p
	decr(p,1,p);
	xgcd(k,p,k,k,k);	//计算k^-1 mod p-1
	multiply(r,x,s);
    subtract(m,s,s);	//计算m-r*x
	multiply(s,k,s);	
    power(s,1,p,s);
    add(s,p,s);
	//计算k^-1*(m-x*r) mod p-1
	
	mir->IOBASE=60;
	char serial1[50];
	char serial2[50];

	cotstr(r,serial1);
    cotstr(s,serial2);
	
	printf("Serail1:%s\n",serial1);
	printf("Serail2:%s\n",serial2);

	mirkill(p);
	mirkill(g);
	mirkill(y);
	mirkill(x);
	mirkill(n);
	mirkill(k);
	mirkill(temp);
	mirkill(r);
	mirkill(s);

	mirexit();

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -