📄 main.html
字号:
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>G:\RSA\main.cpp</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><meta name="generator" content="Code::Blocks Exporter plugin" /><style type="text/css"><!--body { color: #000000; background-color: #FFFFFF; }.style1 { color: #A0A0A0; }.style2 { color: #A0A0A0; }.style3 { color: #8080FF; font-weight: bold; }.style15 { color: #8080FF; font-weight: bold; }.style17 { color: #008080; }.style18 { color: #800000; }.style4 { color: #F000F0; }.style5 { color: #0000A0; font-weight: bold; }.style16 { color: #00A000; font-weight: bold; }.style6 { color: #0000FF; }.style12 { color: #0000FF; }.style7 { color: #E0A000; }.style8 { color: #000000; }.style9 { color: #00A000; }.style10 { color: #FF0000; }.style34 { color: #000000; background-color: #80FFFF; font-weight: bold; }.style35 { color: #FFFFFF; background-color: #FF0000; font-weight: bold; }--></style></head><body><pre><code><span style="font: 11pt Courier New;"><span class="style9">#include "RSA.h"#include <stdio.h>#include <stdlib.h>#include <iostream></span><span class="style5">using namespace </span><span class="style11">std</span><span class="style10">;</span><span class="style5">long </span><span class="style11">getBigPrime</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">PrimeSize1</span><span class="style10">, </span><span class="style5">long </span><span class="style11">PrimeSize2</span><span class="style10">);</span><span class="style2">//get two Big Prime; if get return 1, noget return -1</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">//Encrypt function</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">//Decrypt function</span><span class="style5">long </span><span class="style11">getb</span><span class="style10">(</span><span class="style5">long </span><span class="style11">n_fai</span><span class="style10">);</span><span class="style2">//get b</span><span class="style5">long </span><span class="style11">getb_1</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="style2">//get b_1</span><span class="style5">int </span><span class="style11">main</span><span class="style10">(){</span><span class="style2">//Parameter of RSA </span><span class="style5">long </span><span class="style11">p</span><span class="style10">[</span><span class="style4">2</span><span class="style10">];</span><span class="style2">//two big prime,p=p[0],q=p[1] </span><span class="style5">long </span><span class="style11">n</span><span class="style10">;</span><span class="style2">//n=p*q </span><span class="style5">long </span><span class="style11">n_fai</span><span class="style10">;</span><span class="style2">//n_fai=(p-1)*(q-1) </span><span class="style5">long </span><span class="style11">b</span><span class="style10">;</span><span class="style2">//1<=b<=n_fai, gcd(b,n_fai)==1 </span><span class="style5">long </span><span class="style11">a</span><span class="style10">;</span><span class="style2">//a=b_1 (mod n_fai)//get two Big Prime </span><span class="style5">if </span><span class="style10">(</span><span class="style11">getBigPrime</span><span class="style10">(</span><span class="style11">p</span><span class="style10">,</span><span class="style4">128</span><span class="style10">,</span><span class="style4">256</span><span class="style10">) == -</span><span class="style4">1</span><span class="style10">) </span><span class="style11">cout </span><span class="style10"><< </span><span class="style6">"Get Prime Wrong!" </span><span class="style10"><<</span><span class="style11">endl</span><span class="style10">; </span><span class="style11">cout</span><span class="style10"><<</span><span class="style6">"!!!!!!!!!"</span><span class="style10"><<</span><span class="style11">endl</span><span class="style10">;</span><span class="style2">// cout << p[0] << p[1] <<endl;//get b && a,a=b_1 </span><span class="style11">n</span><span class="style10">=</span><span class="style11">p</span><span class="style10">[</span><span class="style4">0</span><span class="style10">]*</span><span class="style11">p</span><span class="style10">[</span><span class="style4">1</span><span class="style10">]; </span><span class="style11">n_fai</span><span class="style10">=(</span><span class="style11">p</span><span class="style10">[</span><span class="style4">0</span><span class="style10">]-</span><span class="style4">1</span><span class="style10">)*(</span><span class="style11">p</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="style11">cout</span><span class="style10"><<</span><span class="style6">"The n is:"</span><span class="style10"><<</span><span class="style11">n</span><span class="style10"><<</span><span class="style11">endl</span><span class="style10">; </span><span class="style11">cout</span><span class="style10"><<</span><span class="style6">"The n_fai is:"</span><span class="style10"><<</span><span class="style11">n_fai</span><span class="style10"><<</span><span class="style11">endl</span><span class="style10">;</span><span class="style2">// srand((unsigned)time(NULL)); </span><span class="style5">while</span><span class="style10">(</span><span class="style4">1</span><span class="style10">) { </span><span class="style11">b</span><span class="style10">=</span><span class="style11">getb</span><span class="style10">(</span><span class="style11">n_fai</span><span class="style10">);</span><span class="style2">// cout<<"The Rondom b is:"<<b<<endl; </span><span class="style5">if </span><span class="style10">((</span><span class="style11">a</span><span class="style10">=</span><span class="style11">getb_1</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="style4">0</span><span class="style10">) </span><span class="style5">break</span><span class="style10">; }</span><span class="style1">/* cout<<endl; cout<<"The Rondom b is:"<<b<<endl; cout<<"The Rondom a is:"<<a<<endl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -