rsa加密算法c++语言代码
时间: 2023-07-26 18:10:53 浏览: 84
C++写的rsa加密算法
4星 · 用户满意度95%
下面是一个简单的 C++ 实现 RSA 加密算法的示例代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int p, q, n, phi, e, d, msg, enc, dec;
cout << "Enter two prime numbers: ";
cin >> p >> q;
n = p * q;
phi = (p - 1) * (q - 1);
// Choose a number e such that 1 < e < phi, and e is coprime to phi
for (e = 2; e < phi; e++) {
if (gcd(e, phi) == 1) {
break;
}
}
// Compute the private key d
d = 0;
int k = 1;
while (true) {
d = (1 + k * phi) / e;
if ((d * e) % phi == 1) {
break;
}
k++;
}
cout << "Public key: {" << e << ", " << n << "}" << endl;
cout << "Private key: {" << d << ", " << n << "}" << endl;
cout << "Enter a message (integer): ";
cin >> msg;
// Encryption
enc = fmod(pow(msg, e), n);
cout << "Encrypted message: " << enc << endl;
// Decryption
dec = fmod(pow(enc, d), n);
cout << "Decrypted message: " << dec << endl;
return 0;
}
```
在这个示例中,用户输入两个质数 `p` 和 `q`,计算出 `n` 和 `phi`。然后选择一个与 `phi` 互素的整数 `e`,计算私钥 `d`。用户输入一个消息 `msg`,使用公钥 `(e, n)` 对消息进行加密,并使用私钥 `(d, n)` 进行解密。
请注意,此代码仅用于教学示例,不适用于实际加密应用。在实际应用中,需要更复杂的实现来确保安全性。
阅读全文