crypto++库RSA算法问题,请大家帮忙

jielidu 2010-03-18 10:56:47
使用crypto++库进行RSA加解密

从官方网站下的示例代码,其中都是生成公私钥后,使用公钥进行加密,私钥解密。

能否使用私钥进行加密,公钥解密呢?
好像没在什么地方看到特别说明,自己用示例代码测试了一下,发现出错。

请问大家有无使用过公钥加密,私钥解密?
如果知道,请大家指点,多谢!~
...全文
289 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mLee79 2010-03-18
  • 打赏
  • 举报
回复
按照PKCS规范, 私钥加密就叫签名...
rsa decrypt 的数据应该按照特定的规范填充, 通常是 PKCS#1 #2 , 只要你构造的原文符合该规范, 当然是可以解密, 否则就不行...
jielidu 2010-03-18
  • 打赏
  • 举报
回复
// RSA 加解密
char message[1024] = "1";
cout << "Origin Text--->" << message << endl;
cout << "Origin Text length = " << strlen(message) << endl << endl;

string encryptedText = RSAEncryptString(pubKey, seed, message); // RSA 加密
//string encryptedText = RSAEncryptString(priKey, seed, message); // RSA 加密
cout << "Encrypted Text:\t" << encryptedText << endl;
cout << "Encrypted Text length = " << encryptedText.size() << endl << endl;

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

上面RSAEncryptString函数是库示例中函数,传入公钥可以加密,但是传入私钥加密,则失败了。
至于签名我是知道的,但我不想使用签名,就是为了加密个字符串而已。
mLee79 2010-03-18
  • 打赏
  • 举报
回复
私钥进行加密,公钥解密这个叫签名, 里面当然是有的....
jielidu 2010-03-18
  • 打赏
  • 举报
回复
按照RAS算法本身来说,可以使用公钥、私钥加密的,没有特别限制
不知道crypto++库是否有特殊限制。。。。。
jackyjkchen 2010-03-18
  • 打赏
  • 举报
回复
非对称算法不适合加密数据体,仅仅适合用来加密对称密钥(保密),或加密hash(签名),所以,想用非对称算法加密数据本身这个思路就有问题

jielidu 2010-03-18
  • 打赏
  • 举报
回复
我们是C/S程序,Server使用私钥加密一些东西(也算是签名),发送到Client;
Client想公钥解密后,后续验证里面的东西。

如果用库签名的那一套的话,签名发送到Client;
Client进行验证,验证过程中需要:签名后信息、原信息、公钥

我得把原信息发送到Client,很容易被破坏啊
jackyjkchen 2010-03-18
  • 打赏
  • 举报
回复
如果楼主是开发实际应用,那就根本不需要知道签名的具体过程。

如果确实想看私钥加密结果,那就去下一些独立的rsa源码,crypto++和tomcrypt都是针对实际应用的
jackyjkchen 2010-03-18
  • 打赏
  • 举报
回复
我用过tomcrypt,限制了不需用私钥加密公钥解密,那个是签名,有专门的签名函数。
crypto++也是吧,签名实际上不光是加解密的问题,还会做一次hash,最后返回bool够用了
jielidu 2010-03-18
  • 打赏
  • 举报
回复
crypto++库中有签名,验证功能

可以看到签名(私钥加密)后的密文,但验证功能只是给个结果(判断是否和原文一样,返回一个bool值),没看到用什么方法得到公钥解密的结果

大家谁知道啊, 告诉我下,超级郁闷。。。。

64,645

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧