「RSA」非对称加密算法--C++实现

本文介绍了如何使用C++实现RSA非对称加密算法。通过创建KeyProduce类,该类包含了生成密钥对、判断素数、模数计算、扩展欧几里得算法等功能,实现了数据的加密和解密过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

CRSAhead.h

 

 

class KeyProduce{

 

public:

    KeyProduce(UINT model_N = 0,UINT Public_Key = 0,UINT Private_Key = 0);

    ~KeyProduce(){};

 

    VOID GetTwainKey(UINT &model_N,UINT &Public_Key,UINT &Private_Key);

    BOOL RSAKeyEncrypt(UINT divisor,UINT model_N,UINT Private_Key,UINT &result);

 

private:

    VOID ProduceKeyAndModel();                   // 产生密钥和模数

    BOOL JudgePrime(UINT Prime);                 // 判断参数是否为素数

    VOID order(UINT &ParamOne, UINT &ParamTwo);  // 排序,大的在前

    UINT gcd(UINT FN, UINT E);                   // 求两个数的最大公约数

    UINT ExtendEuclid(UINT m, UINT bin);         // 用扩展的欧几里德算法求乘法逆元

 

    UINT ModularMultiplication (UINT divisor,INT Bit[],UINT model_N); // 做快速模幂算法

 

    UINT primeP, primeQ;

    UINT ucoprimeFN;

 

    UINT modelN;               // 模数

    UINT PublicKey;            // 公钥

    UINT PrivateKey;           // 私钥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值