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

📄 main.html

📁 RSA公钥加密的基本实现 bmp灰度图片加解密操作包括 RSA 的加减密算法; 素数检测算法;RSA 密钥生成算法; 应用该 RSA 密码体制加、解密; BMP 灰度图的算法; Pollard p-1
💻 HTML
📖 第 1 页 / 共 3 页
字号:
    cout&lt;&lt;"The a*b%n_fai is:"&lt;&lt;a*b%n_fai&lt;&lt;endl;*/</span><span class="style2">//En_Decrypt function    </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"******Welcome to my RSA design******"</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;    </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"I will encrypt(decrypt) the file Image.bmp"</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;    </span><span class="style11">Encrypt</span><span class="style10">(</span><span class="style11">p</span><span class="style10">, </span><span class="style11">n</span><span class="style10">, </span><span class="style11">n_fai</span><span class="style10">, </span><span class="style11">b</span><span class="style10">, </span><span class="style11">a</span><span class="style10">);    </span><span class="style11">Decrypt</span><span class="style10">(</span><span class="style11">p</span><span class="style10">, </span><span class="style11">n</span><span class="style10">, </span><span class="style11">n_fai</span><span class="style10">, </span><span class="style11">b</span><span class="style10">, </span><span class="style11">a</span><span class="style10">);    </span><span class="style5">return </span><span class="style4">0</span><span class="style10">;}</span><span class="style5">long </span><span class="style11">Encrypt</span><span class="style10">(</span><span class="style5">long </span><span class="style10">*</span><span class="style11">p</span><span class="style10">, </span><span class="style5">long </span><span class="style11">n</span><span class="style10">, </span><span class="style5">long </span><span class="style11">n_fai</span><span class="style10">, </span><span class="style5">long </span><span class="style11">b</span><span class="style10">, </span><span class="style5">long </span><span class="style11">a</span><span class="style10">)</span><span class="style2">//En_Decrypt function</span><span class="style10">{    </span><span class="style5">long </span><span class="style11">plain</span><span class="style10">,</span><span class="style11">cipher</span><span class="style10">,</span><span class="style11">header</span><span class="style10">[</span><span class="style4">62</span><span class="style10">];</span><span class="style2">//    int len;    </span><span class="style11">FILE </span><span class="style10">*</span><span class="style11">iobmp</span><span class="style10">=</span><span class="style11">fopen</span><span class="style10">(</span><span class="style6">"Image.bmp"</span><span class="style10">,</span><span class="style6">"rb"</span><span class="style10">);    </span><span class="style11">FILE </span><span class="style10">*</span><span class="style11">RSAbmp</span><span class="style10">=</span><span class="style11">fopen</span><span class="style10">(</span><span class="style6">"RSA.bmp"</span><span class="style10">,</span><span class="style6">"wb"</span><span class="style10">);    </span><span class="style5">if </span><span class="style10">(</span><span class="style11">iobmp</span><span class="style10">==</span><span class="style11">NULL</span><span class="style10">)    {        </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Open File Image.bmp Error!"</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;        </span><span class="style5">return </span><span class="style4">0</span><span class="style10">;    }    </span><span class="style5">if </span><span class="style10">(</span><span class="style11">RSAbmp</span><span class="style10">==</span><span class="style11">NULL</span><span class="style10">)    {        </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Create File RSA.bmp Error!"</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;        </span><span class="style5">return </span><span class="style4">0</span><span class="style10">;    }    </span><span class="style11">fread</span><span class="style10">(</span><span class="style11">header</span><span class="style10">,</span><span class="style5">sizeof</span><span class="style10">(</span><span class="style5">char</span><span class="style10">),</span><span class="style4">62</span><span class="style10">,</span><span class="style11">iobmp</span><span class="style10">);    </span><span class="style11">fwrite</span><span class="style10">(</span><span class="style11">header</span><span class="style10">,</span><span class="style5">sizeof</span><span class="style10">(</span><span class="style5">char</span><span class="style10">),</span><span class="style4">62</span><span class="style10">,</span><span class="style11">RSAbmp</span><span class="style10">);    </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Encrypting..."</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">&lt;&lt;</span><span class="style6">"Please Waiting..."</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;    </span><span class="style5">long </span><span class="style11">b_Out</span><span class="style10">[</span><span class="style4">100</span><span class="style10">];    </span><span class="style5">long </span><span class="style11">b_bits</span><span class="style10">=</span><span class="style11">NumberToBinary</span><span class="style10">(</span><span class="style11">b_Out</span><span class="style10">, </span><span class="style11">b</span><span class="style10">);    </span><span class="style5">while </span><span class="style10">((</span><span class="style11">plain</span><span class="style10">=</span><span class="style11">fgetc</span><span class="style10">(</span><span class="style11">iobmp</span><span class="style10">))!=</span><span class="style11">EOF</span><span class="style10">)    {</span><span class="style2">//        printf("%ld\n",plain);        </span><span class="style11">plain</span><span class="style10">+=</span><span class="style4">128</span><span class="style10">;        </span><span class="style11">cipher</span><span class="style10">=</span><span class="style11">SquareMultiply</span><span class="style10">(</span><span class="style11">b_Out</span><span class="style10">, </span><span class="style11">n</span><span class="style10">, </span><span class="style11">plain</span><span class="style10">, </span><span class="style11">b_bits</span><span class="style10">);        </span><span class="style11">fwrite</span><span class="style10">(&amp;</span><span class="style11">cipher</span><span class="style10">,</span><span class="style5">sizeof</span><span class="style10">(</span><span class="style11">cipher</span><span class="style10">),</span><span class="style4">1</span><span class="style10">,</span><span class="style11">RSAbmp</span><span class="style10">);    }    </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Encrypting Finish..."</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">&lt;&lt;</span><span class="style6">"Devrypting ..."</span><span class="style10">&lt;&lt;</span><span class="style6">"Please Waiting..."</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;    </span><span class="style11">fclose</span><span class="style10">(</span><span class="style11">iobmp</span><span class="style10">);    </span><span class="style11">fclose</span><span class="style10">(</span><span class="style11">RSAbmp</span><span class="style10">);    </span><span class="style5">return </span><span class="style4">0</span><span class="style10">;}</span><span class="style5">long </span><span class="style11">Decrypt</span><span class="style10">(</span><span class="style5">long </span><span class="style10">*</span><span class="style11">p</span><span class="style10">, </span><span class="style5">long </span><span class="style11">n</span><span class="style10">, </span><span class="style5">long </span><span class="style11">n_fai</span><span class="style10">, </span><span class="style5">long </span><span class="style11">b</span><span class="style10">, </span><span class="style5">long </span><span class="style11">a</span><span class="style10">)</span><span class="style2">//En_Decrypt function</span><span class="style10">{    </span><span class="style5">long </span><span class="style11">plain</span><span class="style10">,</span><span class="style11">cipher</span><span class="style10">,</span><span class="style11">header</span><span class="style10">[</span><span class="style4">62</span><span class="style10">];    </span><span class="style11">FILE </span><span class="style10">*</span><span class="style11">RSAbmp</span><span class="style10">=</span><span class="style11">fopen</span><span class="style10">(</span><span class="style6">"RSA.bmp"</span><span class="style10">,</span><span class="style6">"rb"</span><span class="style10">);    </span><span class="style11">FILE </span><span class="style10">*</span><span class="style11">RSAbackbmp</span><span class="style10">=</span><span class="style11">fopen</span><span class="style10">(</span><span class="style6">"RSAback.bmp"</span><span class="style10">,</span><span class="style6">"wb"</span><span class="style10">);    </span><span class="style5">if </span><span class="style10">(</span><span class="style11">RSAbmp</span><span class="style10">==</span><span class="style11">NULL</span><span class="style10">)    {        </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Open CipherFile RSA.bmp Error!"</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;        </span><span class="style5">return </span><span class="style4">0</span><span class="style10">;    }    </span><span class="style5">if </span><span class="style10">(</span><span class="style11">RSAbackbmp</span><span class="style10">==</span><span class="style11">NULL</span><span class="style10">)    {        </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Create PlainBackFile RSAback.bmp Error!"</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;        </span><span class="style5">return </span><span class="style4">0</span><span class="style10">;    }    </span><span class="style11">fread</span><span class="style10">(</span><span class="style11">header</span><span class="style10">,</span><span class="style5">sizeof</span><span class="style10">(</span><span class="style5">char</span><span class="style10">),</span><span class="style4">62</span><span class="style10">,</span><span class="style11">RSAbmp</span><span class="style10">);    </span><span class="style11">fwrite</span><span class="style10">(</span><span class="style11">header</span><span class="style10">,</span><span class="style5">sizeof</span><span class="style10">(</span><span class="style5">char</span><span class="style10">),</span><span class="style4">62</span><span class="style10">,</span><span class="style11">RSAbackbmp</span><span class="style10">);    </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Encrypting..."</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">&lt;&lt;</span><span class="style6">"Please Waiting..."</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;    </span><span class="style5">long </span><span class="style11">a_Out</span><span class="style10">[</span><span class="style4">100</span><span class="style10">];    </span><span class="style5">long </span><span class="style11">a_bits</span><span class="style10">=</span><span class="style11">NumberToBinary</span><span class="style10">(</span><span class="style11">a_Out</span><span class="style10">, </span><span class="style11">a</span><span class="style10">);    </span><span class="style5">while </span><span class="style10">(</span><span class="style11">fread</span><span class="style10">(&amp;</span><span class="style11">cipher</span><span class="style10">,</span><span class="style5">sizeof</span><span class="style10">(</span><span class="style11">cipher</span><span class="style10">),</span><span class="style4">1</span><span class="style10">,</span><span class="style11">RSAbmp</span><span class="style10">)!=</span><span class="style4">0</span><span class="style10">)    {        </span><span class="style11">plain</span><span class="style10">=</span><span class="style11">SquareMultiply</span><span class="style10">(</span><span class="style11">a_Out</span><span class="style10">, </span><span class="style11">n</span><span class="style10">, </span><span class="style11">cipher</span><span class="style10">, </span><span class="style11">a_bits</span><span class="style10">);        </span><span class="style11">fputc</span><span class="style10">(</span><span class="style11">plain</span><span class="style10">-</span><span class="style4">128</span><span class="style10">,</span><span class="style11">RSAbackbmp</span><span class="style10">);    }    </span><span class="style11">cout</span><span class="style10">&lt;&lt;</span><span class="style6">"Decrypt Finish"</span><span class="style10">&lt;&lt;</span><span class="style11">endl</span><span class="style10">;    </span><span class="style11">fclose</span><span class="style10">(</span><span class="style11">RSAbmp</span><span class="style10">);    </span><span class="style11">fclose</span><span class="style10">(</span><span class="style11">RSAbackbmp</span><span class="style10">);    </span><span class="style5">return </span><span class="style4">0</span><span class="style10">;

⌨️ 快捷键说明

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