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

📄 login.cpp

📁 这是一个用VC编写的工程
💻 CPP
字号:
// Login.cpp : implementation file
//

#include "stdafx.h"
#include "lx1.h"
#include "Login.h"
#include "math.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// Login dialog
    int power(int a, int n, int m)
{
	
    int z=1, t;

	for(t=a; n>0; n>>=1)
    { 
         if (n%2==1) z=(z*t) % m;
         t=(t*t) % m;
    }
	return(z);
}

BOOL isPrime(int x)
{	
	int i;

	for (i = 2; i <= (int)sqrt(x); i++)
	{
		if (x % i == 0)
			break;
	}
	if (i > (int)sqrt(x))
		return true;
	return false;
}

int gcd(int a, int b)
{
	if (a == 0)
	{
		return b;
	}
	else
	{
		return gcd(b % a, a);
	}

}

int Euler(int e, int fin)
{
	int u1 = 1;
	int u2 = 0;
	int u3 = fin;
	int v1 = 0;
	int v2 = 1;
	int v3 = e;
	int v = 1;
	int t1, t2, t3;
	int q;
	int uu, vv;
	int inverse, z;
	while (v3 != 0)
	{
		q = (int)(u3 /v3);
		t1 = u1 - q * v1;
		t2 = u2 - q * v2;
		t3 = u3 - q * v3;
		u1 = v1;
		u2 = v2;
		u3 = v3;
		v1 = t1;
		v2 = t2;
		v3 = t3;
		z =  1;
	}
	uu = u1;
	vv = u2;

	if (vv < 0)
		inverse = vv + fin;
	else
		inverse = vv;

     int m6 = inverse;
     return m6;
}


Login::Login(CWnd* pParent /*=NULL*/)
	: CDialog(Login::IDD, pParent)
{
	//{{AFX_DATA_INIT(Login)
	m_name = _T("");
	m_pass = _T("");
	//}}AFX_DATA_INIT
}


void Login::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Login)
	DDX_Text(pDX, IDC_NAME, m_name);
	DDX_Text(pDX, IDC_PASS, m_pass);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Login, CDialog)
	//{{AFX_MSG_MAP(Login)
	ON_BN_CLICKED(IDOK_ADD, OnAdd)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Login message handlers

void Login::OnAdd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	int i;
    
    CString buf,m1=m_name,m2=m_pass;
	CString strTemp;
    if(strlen(m1)>8)
	{
       AfxMessageBox("用户名不可以大于8位");
	}
	 else if(strlen(m2)>10)
	{
       AfxMessageBox("密码不可以大于10位");
	}
    else if(strlen(m1)==0||strlen(m2)==0)
	{
         AfxMessageBox("注册名和密码都不可以为空");
	}
	else
	{
        AfxMessageBox("正在生成密钥请等待。。。。。。");
        int m3,m4;   //生成密钥的函数

	while(true)
	{
		srand(time(0));
		m3 = rand() % 100;
		m4 = rand() % 100;
		if (isPrime(m3) && isPrime(m4))
			break;
	}
	int m5;
    m5=m3*m4;
	int fiN = (m3 - 1) * (m4 - 1);
	//int e;

	for (int j= 3; j< fiN; j++)
	{
		if (isPrime(j) && gcd(fiN, j) == 1)
		{
			int m5 = j;
			break;
		}
	}

	int m6;
	m6=Euler(m5, fiN);
    CString m8; 
    m8.Format("%d",m6); 

    if(strlen(m1)<8)for(i=0;i<8-strlen(m1);i++)m1+=" ";
	if(strlen(m2)<10)for(i=0;i<10-strlen(m2);i++)m2+=" ";
    CString m7; 
    m7.Format("%d",m5); 
	if(strlen(m7)<10)for(i=0;i<10-strlen(m7);i++)m7+=" ";
	if(strlen(m8)<10)for(i=0;i<10-strlen(m8);i++)m8+=" ";
    buf=m1+m2+m7+m8;
	
    FILE *fp;  
	fp=fopen("d:\\1.txt","ab+");  
	if(fp){  
		fwrite((LPCTSTR)buf,buf.GetLength(),1,fp);
		fclose(fp);
	} 
	AfxMessageBox("注册成功");
	}

}

⌨️ 快捷键说明

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