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

📄 pwchange.cpp

📁 一个用C++写的电力系统故障录波数据管理系统
💻 CPP
字号:
// PwChange.cpp : implementation file
//

#include "stdafx.h"
#include "wgl_32.h"
#include "PwChange.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPwChange dialog


CPwChange::CPwChange(CWnd* pParent /*=NULL*/)
	: CDialog(CPwChange::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPwChange)
	m_StrPw1 = _T("");
	m_StrPw2 = _T("");
	//}}AFX_DATA_INIT
}


void CPwChange::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPwChange)
	DDX_Text(pDX, IDC_PASSWORD1, m_StrPw1);
	DDV_MaxChars(pDX, m_StrPw1, 10);
	DDX_Text(pDX, IDC_PASSWORD2, m_StrPw2);
	DDV_MaxChars(pDX, m_StrPw2, 10);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPwChange, CDialog)
	//{{AFX_MSG_MAP(CPwChange)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPwChange message handlers

void CPwChange::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(TRUE);
	int length1 = m_StrPw1.GetLength();
	int length2 = m_StrPw2.GetLength();
/*
	int length1 = ((CEdit *)GetDlgItem(IDC_PASSWORD1))->LineLength(-1);
    ((CEdit *)GetDlgItem(IDC_PASSWORD1))->GetLine(0, m_StrPw1.GetBuffer(length1));
    m_StrPw1.ReleaseBuffer();

    int length2 = ((CEdit *)GetDlgItem(IDC_PASSWORD2))->LineLength(-1);
    ((CEdit *)GetDlgItem(IDC_PASSWORD2))->GetLine(0, m_StrPw2.GetBuffer(length2));
    m_StrPw2.ReleaseBuffer();*/


    if( (m_StrPw1.IsEmpty()) || (m_StrPw2.IsEmpty()) || (m_StrPw1 != m_StrPw2) ) 
      { AfxMessageBox("输入的两个新密码不相同,原密码未改变!",MB_OK); CDialog::OnCancel(); return;}
    else
      {
       FILE *pwfp ;
       pwfp = fopen("wgl_32pw.pwl", "r+b");
       MakePw(m_StrPw1.GetBuffer(length1), pwfp, 0);
       m_StrPw1.ReleaseBuffer();
       m_StrPw1.Empty();
       m_StrPw2.Empty();
       fclose(pwfp);
       AfxMessageBox("密码已改变,请记住新密码!",MB_OK); 
	   CDialog::OnOK();
      }
}

int CPwChange::MakePw(char *m_Str, FILE *fp, int flag)
{
  int i,j;
  struct writetofile
         {
          int index;
          int offset;
          int other[8];
          char wyy[18];
          char rest[100];
         }pw;
  char wyy[] = "\1~we#ar%e4&^0*()\2";
  if(flag ==0)
    {
      for(j=0; j < (int)lstrlen(m_Str); j++)
          m_Str[j] = m_Str[j] ^ 'w';
     memcpy(pw.wyy, m_Str, lstrlen(m_Str));
     pw.index = rand();
     pw.offset = sizeof(int)*10;
     for(i=0;i<8;i++)
         pw.other[i] = rand();
     fseek(fp, 0L, SEEK_SET);
     fwrite(&pw, sizeof(pw), 1,  fp);
     return (1);
    }
  else if(flag ==1)
    {
     fseek(fp, 0L, SEEK_SET);
     fread(&pw, sizeof(pw), 1,  fp);
     for(j=0; j < (int)lstrlen(pw.wyy); j++)
         pw.wyy[j] = pw.wyy[j] -1;
     if(lstrcmp(pw.wyy, m_Str)==0)
        return (1);
     else return(0);
    }
  else 
    return (0);
  
}


⌨️ 快捷键说明

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