pasphraseanalyserunit.cpp

来自「This file contains a C++Builder 4 projec」· C++ 代码 · 共 63 行

CPP
63
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "PasphraseAnalyserUnit.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)

void __fastcall TPassphrase::Analyse(void)
{
  int i;

  GroundValue = 0.0;

  for(i = 0; i < PhraseLength; i++)
  {
    vPassphrase[i] = 1 / double(Passphrase[i]);
    GroundValue = GroundValue + vPassphrase[i];
  }
  if(GroundValue > 1.0)
    GroundValue = 1 / GroundValue;
}


TPassphrase::TPassphrase()
{
  int i;

  for(i = 0; i < 40; i++)
  {
    Passphrase[i] = 0;
    vPassphrase[i] = 0.0;
  }
}


void __fastcall TPassphrase::SetPassphrase(char * ThePhrase)
{
   strcpy(Passphrase, ThePhrase);

   PhraseLength = strlen(Passphrase);
   PhrasePos = 0;
}


double __fastcall TPassphrase::ExtractKey(void)
{
   int i;
   double TheKey;

   TheKey = (vPassphrase[PhrasePos] + GroundValue) / 2;
   for(i = 1; i <= 5; i++)
     vPassphrase[PhrasePos] = vPassphrase[PhrasePos] * 3.9999 * (1 - vPassphrase[PhrasePos]);

   PhrasePos = ++PhrasePos % PhraseLength;
   if(PhrasePos == 0)
     for(i = 1; i <= 5; i++)
       GroundValue = GroundValue * 3.9999 * (1 - GroundValue);

   return TheKey;
}

⌨️ 快捷键说明

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