暴力解読暗号シミュレーションプログラム、暴力解読暗号実装プログラムコードをシミュレートする


暴力的に暗号を解読する原理:簡単な変換暗号の組み合わせを通じて、すべての可能な暗号の組み合わせを列挙して比較を試みる.いつも1組の組み合わせが正しい.しかし、これは大量の対比を通じて解読を実現する必要がある.そのため、パスワードの長さが長ければ長いほど、数字のアルファベットと記号の組み合わせ、大文字と小文字の組み合わせなど、パスワードの暴力的な解読の難しさが大幅に向上します.プログラムが暴力的な解読を実現するシミュレーション原理:ASCII符号化の範囲内で、指定された長さのパスワードを並べて組み合わせると、長さが大きいほど、組み合わせ数が多くなることが予想される.プログラムでは全配列が用いられ,すべての組合せが配列されており,符号化の順序から並べられているため,最も非効率である.配列の組合せを生成すると,パスワードと照合し,一致するか否かを判断する.もちろん実際の状況では、上陸や他のことを試しています.例えばwifiパスワードを解読すると、生成したパスワードを組み合わせて接続ルータにログインします.プログラムでは、パスワードの数桁で、出力後に消去し、大量のブラシ出力ではなく、パスワードの組み合わせを一定の位置で変化させます.これは関数の最背面層のforループ出力bロールバック文字の役割です.実际の応用シーン:実际に解読する时、通常パスワードの辞书があって、はっきり言って、よく使うパスワードのリストです.私たちのパスワードを分析することで、88888888などの慣用的なパスワードの組み合わせがわかります.だから最初はこれらの慣用パスワードで試して、だめなら、最初から最後まで試してみましょう.入力できない文字はパスワードに表示されないので、これらの文字もスキップされます.私たちのこのプログラムは最も基本的な解読プレゼンテーションにすぎません.実際に解読するには、実際の状況に応じてアルゴリズムを最適化する必要があります.例えば、1人のユーザーの誕生日を知ると、誕生日グループを使って試してみることができ、名前が得られたら、名前情報と組み合わせて試してみることができ、情報が多ければ多いほど、難易度が低くなります.注意事項:だから、私たちは普段パスワードを設定する時、できるだけ誕生日の名前などの情報でパスワードを設定しないでください.これらの情報はすでにネット上で氾濫しているので、どこでも調べることができます.誰かに狙われてパスワードを解読させると、それはかなり簡単なことです.しかし、暴力的な解読はどこにでもあるわけではない.ほとんどの成熟したシステムでは、ログイン回数が制限され、エラーが何回を超えるとログインを拒否します.そのため、暴力的な解読のリスクも低減された.しかし、あなたの情報が多すぎて、暴力的に解読する必要はありませんが、簡単に解読することができます.
    #include 
#include 
#include 
char * pw = NULL;
char password[50];
int len =0;
bool po(int n);
using namespace std;
void main()
{
    cout<<"       : ";
    cin.getline(password,50);
    len = strlen(password);
    pw = new char[len+1];
    for(int i=0;i1;i++)
        pw[i]=32;
    int n=0;
    cout<<"<<>>:
"
; cout<<" ... >>"; if(po(n)) cout<<" : ["<"]"<"pause"); } bool po(int n) { if(n>len)return false; for(int i=32;i<127;i++) { pw[n] = (char)i; if(n==len) { pw[n]='\0';// if(!strcmp(password,pw)) { cout<<" !
"
; return true; } else { cout<for(int n=0;n// - cout<<"\b"; } return false; } if(po(n+1))return true; } return false; }