C++实现RSA加密解密算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++实现RSA加密解密算法相关的知识,希望对你有一定的参考价值。

参考技术A #include <iostream>
using namespace std;

template <class HugeInt>
HugeInt Power( const HugeInt & x, const HugeInt & n, // 求x^n mod p
const HugeInt & p )

if( n == 0 )
return 1;

HugeInt tmp = Power( ( x * x ) % p, n / 2, p );

if( n % 2 != 0 )
tmp = ( tmp * x ) % p;

return tmp;


template <class HugeInt>
void fullGcd( const HugeInt & a, const HugeInt & b, //
HugeInt & x, HugeInt & y )

HugeInt x1, y1;

if( b == 0 )

x = 1;
y = 0;

else

fullGcd( b, a % b, x1, y1 );
x = y1;
y = x1 - ( a / b ) * y1;



template <class HugeInt>
HugeInt inverse( const HugeInt & p, const HugeInt & q, // 求d
const HugeInt & e )

int fyn = ( 1 - p ) * ( 1 - q );
HugeInt x, y;

fullGcd( fyn, e, x, y );
return x > 0 ? x : x + e;


int main( )

cout << "Please input the plaintext: " << endl;
int m;
cin >> m;
cout << "Please input p,q and e: " << endl;
int p, q, e;
cin >> p >> q >> e;
int n = p * q;
int d = inverse( p, q, e );
int C = Power( m, e, n );
cout << "The ciphertext is: " << C << endl;
cout << "\n\nPlease input the ciphertext: " << endl;
cin >> C;
cout << "\n\nPlease input p, q and d: " << endl;
cin >> p >> q >> d;
n = p * q;
m = Power( C, d, n );
cout <<"The plaintext is: " << m << endl << endl;

system( "pause" );
return 0;


这就是RSA加密解密算法本回答被提问者采纳
参考技术B 你的程序直接运行结束了,所以你什么都看不见。
你可以在你的MAIN函数最后一行加一句:
getchar();
或者
system("pause");

另外如果你输出的内容是非可见字符,那你也看不见,你下个断点,看看变量的值就看见了。

iOS小技能:RSA签名算法和加密算法的实现

文章目录

引言

签名算法: “SHA1withRSA”, 私

以上是关于C++实现RSA加密解密算法的主要内容,如果未能解决你的问题,请参考以下文章

RSA算法的C++实现

求RSA加密解密算法,c++源代码

RSA密码算法C++实现

数据加密--详解 RSA加密算法 原理与实现

rsa加密算法及js的JSEncrypt实现前端加密

java rsa私钥加密