永发信息网

帮忙解释crypto中的RSA算法,分全给你

答案:1  悬赏:50  手机版
解决时间 2021-02-06 16:35
void main()

{

char priKey[128] = {0};

char pubKey[128] = {0};

char seed[1024] = {0};

// 生成 RSA 密钥对

strcpy(priKey, "pri"); // 生成的私钥文件

strcpy(pubKey, "pub"); // 生成的公钥文件

strcpy(seed, "seed");

GenerateRSAKey(1024, priKey, pubKey, seed);

// RSA 加解密

char message[1024] = {0};

cout<<"Origin Text:\t"<<"Hello World!"<
strcpy(message, "Hello World!");

string encryptedText = RSAEncryptString(pubKey, seed, message); // RSA 加密

cout<<"Encrypted Text:\t"<
string decryptedText = RSADecryptString(priKey, encryptedText.c_str()); // RSA 解密

cout<<"Decrypted Text:\t"<
string a;

cin >> a;
}

//------------------------

// 生成RSA密钥对

//------------------------

void GenerateRSAKey(unsigned int keyLength, const char *privFilename, const char *pubFilename, const char *seed)

{

RandomPool randPool;

randPool.Put((byte *)seed, strlen(seed));

RSAES_OAEP_SHA_Decryptor priv(randPool, keyLength);

HexEncoder privFile(new FileSink(privFilename));

priv.DEREncode(privFile);

privFile.MessageEnd();

RSAES_OAEP_SHA_Encryptor pub(priv);

HexEncoder pubFile(new FileSink(pubFilename));

pub.DEREncode(pubFile);

pubFile.MessageEnd();

}

//------------------------

// RSA加密

//------------------------

string RSAEncryptString(const char *pubFilename, const char *seed, const char *message)

{

FileSource pubFile(pubFilename, true, new HexDecoder);

RSAES_OAEP_SHA_Encryptor pub(pubFile);

RandomPool randPool;

randPool.Put((byte *)seed, strlen(seed));

string result;

StringSource(message, true, new PK_EncryptorFilter(randPool, pub, new HexEncoder(new StringSink(result))));

return result;

}

//------------------------

// RSA解密

//------------------------

string RSADecryptString(const char *privFilename, const char *ciphertext)

{

FileSource privFile(privFilename, true, new HexDecoder);

RSAES_OAEP_SHA_Decryptor priv(privFile);

string result;

StringSource(ciphertext, true, new HexDecoder(new PK_DecryptorFilter(GlobalRNG(), priv, new StringSink(result))));

return result;

}

//------------------------

// 定义全局的随机数池

//------------------------

RandomPool & GlobalRNG()

{
static RandomPool randomPool;
return randomPool;
}

我的意思是具体每一步骤的含义,没让你解释RSA的概念
最佳答案
没学过,等有时件漫漫看.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乌鬓的意思是什么啊?知道的请说下!
高铁站车票会全部放到网上买吗?
已知函数f(x)=(1/3)^x-log2^x,若实数x0是
公务员考试到正式上岗间隔多久
天涯明月刀 神威 橙色装备怎么弄
求战队名字 人物名字 名字格式 要霸气
丽萍建材城这个地址在什么地方,我要处理点事
求天猫店铺客户添加微信之后,发一段恭喜成为
嗜酸细胞偏高的原因
翰林图文快印怎么去啊,我要去那办事
瞑坐的意思是什么啊?知道的请说下!
[s1]下列关于细胞呼吸的叙述,错误的是………
姐妹缘过桥米线麻辣烫我想知道这个在什么地方
SQL 统计:各列按类分别统计,求方法。
老鼠喝不喝水?
推荐资讯
拉玉派出所地址在哪,我要去那里办事
中国电信(正街营业厅)(迎春路和碧云路的交叉
滑稽在古文中的原本意思
鑐铁的意思是什么啊?知道的请说下!
(14分)阅读材料,回答问题:材料一西周时,耒
我想把苗银手镯的开口处通过焊接做成闭口的,
陈小春有2个妹妹
顺达摩托车电动车修理部怎么去啊,有知道地址
窗口买的火车票能在窗口改签吗
天华快餐在哪里啊,我有事要去这个地方
建设银行信用卡提额要下载什么app
北半球造型怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?