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

📄 rsadesign.html

📁 RSA公钥加密的基本实现 bmp灰度图片加解密操作包括 RSA 的加减密算法; 素数检测算法;RSA 密钥生成算法; 应用该 RSA 密码体制加、解密; BMP 灰度图的算法; Pollard p-1
💻 HTML
📖 第 1 页 / 共 2 页
字号:
}</span><span class="style5">long </span><span class="style11">NumberToBinary</span><span class="style10">(</span><span class="style5">long </span><span class="style10">*</span><span class="style11">Out</span><span class="style10">, </span><span class="style5">long </span><span class="style11">In</span><span class="style10">)</span><span class="style2">//Number change to Binary, ok return bits</span><span class="style10">{    </span><span class="style5">long </span><span class="style11">count</span><span class="style10">=</span><span class="style4">0</span><span class="style10">;    </span><span class="style5">long </span><span class="style11">tempin</span><span class="style10">=</span><span class="style11">In</span><span class="style10">;    </span><span class="style5">long </span><span class="style11">temp</span><span class="style10">[</span><span class="style11">MAX_E_D</span><span class="style10">]={</span><span class="style4">0</span><span class="style10">};    </span><span class="style5">do</span><span class="style10">{        </span><span class="style11">temp</span><span class="style10">[</span><span class="style11">count</span><span class="style10">]=</span><span class="style11">tempin</span><span class="style10">%</span><span class="style4">2</span><span class="style10">;        </span><span class="style11">tempin</span><span class="style10">=</span><span class="style11">tempin</span><span class="style10">/</span><span class="style4">2</span><span class="style10">;        </span><span class="style5">if </span><span class="style10">(</span><span class="style11">tempin</span><span class="style10">==</span><span class="style4">1</span><span class="style10">)        {            </span><span class="style11">temp</span><span class="style10">[</span><span class="style11">count</span><span class="style10">+</span><span class="style4">1</span><span class="style10">]=</span><span class="style4">1</span><span class="style10">;            </span><span class="style5">break</span><span class="style10">;        }        </span><span class="style11">count</span><span class="style10">++;    }</span><span class="style5">while</span><span class="style10">(</span><span class="style4">1</span><span class="style10">);    </span><span class="style11">count</span><span class="style10">=</span><span class="style11">count</span><span class="style10">+</span><span class="style4">2</span><span class="style10">;</span><span class="style2">//    bits=&amp;count;    </span><span class="style5">long </span><span class="style11">i</span><span class="style10">=</span><span class="style4">0</span><span class="style10">;    </span><span class="style5">for </span><span class="style10">(</span><span class="style5">long </span><span class="style11">j</span><span class="style10">=</span><span class="style11">count</span><span class="style10">-</span><span class="style4">1</span><span class="style10">; </span><span class="style11">i</span><span class="style10">&lt;</span><span class="style11">count</span><span class="style10">; </span><span class="style11">i</span><span class="style10">++)    {        </span><span class="style11">Out</span><span class="style10">[</span><span class="style11">j</span><span class="style10">]=</span><span class="style11">temp</span><span class="style10">[</span><span class="style11">i</span><span class="style10">];        </span><span class="style11">j</span><span class="style10">--;    }    </span><span class="style5">return </span><span class="style11">count</span><span class="style10">;}</span><span class="style5">long </span><span class="style11">SquareMultiply</span><span class="style10">(</span><span class="style5">long </span><span class="style10">*</span><span class="style11">In</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">x</span><span class="style10">, </span><span class="style5">long </span><span class="style11">l</span><span class="style10">)</span><span class="style2">//Square_And_Multiply, z=x^c mod n, In is the z's Binary, l is the In's length</span><span class="style10">{    </span><span class="style5">long long </span><span class="style11">z</span><span class="style10">=</span><span class="style4">1</span><span class="style10">;    </span><span class="style5">for </span><span class="style10">(</span><span class="style5">long </span><span class="style11">i</span><span class="style10">=</span><span class="style4">0</span><span class="style10">; </span><span class="style11">i</span><span class="style10">&lt;=</span><span class="style11">l</span><span class="style10">-</span><span class="style4">1</span><span class="style10">; </span><span class="style11">i</span><span class="style10">++)    {        </span><span class="style11">z</span><span class="style10">=(</span><span class="style11">z</span><span class="style10">*</span><span class="style11">z</span><span class="style10">)%</span><span class="style11">n</span><span class="style10">;        </span><span class="style5">if </span><span class="style10">(</span><span class="style11">In</span><span class="style10">[</span><span class="style11">i</span><span class="style10">]==</span><span class="style4">1</span><span class="style10">)        {            </span><span class="style11">z</span><span class="style10">=(</span><span class="style11">z</span><span class="style10">*</span><span class="style11">x</span><span class="style10">)%</span><span class="style11">n</span><span class="style10">;        }    }    </span><span class="style5">return </span><span class="style11">z</span><span class="style10">;}</span><span class="style5">long </span><span class="style11">MultiplicativeInverse</span><span class="style10">(</span><span class="style5">long </span><span class="style11">a</span><span class="style10">, </span><span class="style5">long </span><span class="style11">b</span><span class="style10">)</span><span class="style2">//get b_1</span><span class="style10">{    </span><span class="style5">long </span><span class="style11">a0</span><span class="style10">=</span><span class="style11">a</span><span class="style10">,</span><span class="style11">b0</span><span class="style10">=</span><span class="style11">b</span><span class="style10">,</span><span class="style11">t0</span><span class="style10">=</span><span class="style4">0</span><span class="style10">,</span><span class="style11">t</span><span class="style10">=</span><span class="style4">1</span><span class="style10">;    </span><span class="style5">long </span><span class="style11">q</span><span class="style10">=</span><span class="style11">a0</span><span class="style10">/</span><span class="style11">b0</span><span class="style10">;    </span><span class="style5">long </span><span class="style11">r</span><span class="style10">=</span><span class="style11">a0</span><span class="style10">-</span><span class="style11">q</span><span class="style10">*</span><span class="style11">b0</span><span class="style10">;    </span><span class="style5">while </span><span class="style10">(</span><span class="style11">r</span><span class="style10">&gt;</span><span class="style4">0</span><span class="style10">)    {        </span><span class="style5">long </span><span class="style11">temp</span><span class="style10">=(</span><span class="style11">t0</span><span class="style10">-</span><span class="style11">q</span><span class="style10">*</span><span class="style11">t</span><span class="style10">)%</span><span class="style11">a</span><span class="style10">;        </span><span class="style11">t0</span><span class="style10">=</span><span class="style11">t</span><span class="style10">;        </span><span class="style11">t</span><span class="style10">=</span><span class="style11">temp</span><span class="style10">;        </span><span class="style11">a0</span><span class="style10">=</span><span class="style11">b0</span><span class="style10">;        </span><span class="style11">b0</span><span class="style10">=</span><span class="style11">r</span><span class="style10">;        </span><span class="style11">q</span><span class="style10">=</span><span class="style11">a0</span><span class="style10">/</span><span class="style11">b0</span><span class="style10">;        </span><span class="style11">r</span><span class="style10">=</span><span class="style11">a0</span><span class="style10">-</span><span class="style11">q</span><span class="style10">*</span><span class="style11">b0</span><span class="style10">;    }    </span><span class="style5">if </span><span class="style10">(</span><span class="style11">b0</span><span class="style10">!=</span><span class="style4">1</span><span class="style10">)</span><span class="style2">//        cout&lt;&lt;NO b_1 exits!!!!&lt;&lt;endl;        </span><span class="style5">return </span><span class="style10">-</span><span class="style4">1</span><span class="style10">;    </span><span class="style5">else        return </span><span class="style11">t</span><span class="style10">;}</span></span></code></pre></body></html>

⌨️ 快捷键说明

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