社区
C语言
帖子详情
关于RSA加解密的公钥和私钥
路之远
2011-01-25 06:00:15
最近在搞Rocky3(usbkey)的RSA加解密,Rocky3自动生成的RSA公钥是140个字节,私钥是340个字节,而我看了windows API生成的公钥私钥都是1024 或者 2048位,就是128字节或者256字节,谁能指点下 这到底怎么回事啊。
...全文
1001
5
打赏
收藏
关于RSA加解密的公钥和私钥
最近在搞Rocky3(usbkey)的RSA加解密,Rocky3自动生成的RSA公钥是140个字节,私钥是340个字节,而我看了windows API生成的公钥私钥都是1024 或者 2048位,就是128字节或者256字节,谁能指点下 这到底怎么回事啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiang81020
2011-01-28
打赏
举报
回复
你得了解rockey3的中公私钥整个结构,将这些部分提取出来
第一部分 p;
第二部分 q;
第三部分 dp;
第四部分 dq;
第五部分 InvQ;
是不是还缺少m、e?
OPENSSL库记得使用的是REF结构,分别将你提取出来的参数填入到REF结构中,就可以了。
ThinkHand
2011-01-28
打赏
举报
回复
看来你基本已经知道了问题的所在了,就是你用的那个rockey3他生成的RSA的私钥里包含了RSA所用到的几个重要数据才会产生公钥跟私钥不一样长度的问题。如果你用libeasy来做的话导出来的私钥也是跟公钥不一样长多的。包含那几个参数用生成的私钥就可以推导出来公钥的。你可以用分别读取出来那几个参数和私钥的数据,然后再用设置密钥参数的那个api函数设置一下试试。
生成一个密钥容器->生成一个RSA的密钥->设置密钥参数为你读到几个参数.按照这个步骤试验一下看看。因为我没有用过rockey这个东西。只用了用wincrypt,能给你的建议就这么多了。愿你早日搞定。新年快乐。
ischarles
2011-01-28
打赏
举报
回复
公钥的长度无所谓,私钥的长度是越长越好,一般私钥用的是1024位.因为对当今的计算机而言1024位是需要花很长时间才能破解的.
路之远
2011-01-26
打赏
举报
回复
后来咨询了下rockey3的密钥对格式是这样的
R3 RSA公私钥格式
公钥:140字节,一共有两部分组成n和e,对应的结构体如下
n占前132字节,对应得结构体如下:
struct
{
BYTE bTagHigh;
BYTE bTagLow;
BYTE bLenHigh;
BYTE bLenLow; //128
BYTE bData[128];
}
bData中是真正的公钥。
e占后8字节,结构入下:
struct
{
BYTE bTagHigh;
BYTE bTagLow;
BYTE bLenHigh;
BYTE bLenLow; //4
BYTE bData[4];
}
bData中为指数。
私钥:340字节,一共5部分,每部分为68字节,每个部分的结构为:
struct
{
BYTE bTagHigh;
BYTE bTagLow;
BYTE bLenHigh;
BYTE bLenLow;
BYTE bData[64];
}
第一部分 p;
第二部分 q;
第三部分 dp;
第四部分 dq;
第五部分 InvQ;
这是rockey3自己生成的RSA密钥对格式,和标准的RSA公钥私钥对不一样。。我现在想把公钥导入微软的密钥库中使用,据说要转化一下,用VC下的一个openssl库文件来转化,谁能指点下该如何转换,万分感谢
qq120848369
2011-01-25
打赏
举报
回复
越大越安全,这个无所谓的事.
RSA算法生成两个大素数,p和q。 求n=p*q,f(n)=(p-1)*(q-1),随机得到一个e,gcd(e,f(n))=1
e就是用于加密的密钥,当然越大越好,就这样。
RSA
4K
加解密
,用
私钥
加密还是
公钥
加密
本文介绍了
RSA
4K密钥
加解密
的应用场景。数据加密确保机密性,用接收方
公钥
加密、
私钥
解密;数字签名确保身份认证和完整性,用发送方
私钥
签名、
公钥
验证。还提及
RSA
4K密钥的特殊注意事项,如性能、填充方案和密钥用途等。
RSA
公钥
私钥
的
加解密
详细代码
本文介绍了一种基于Java的
RSA
加密解密实现方案,包括生成密钥对、使用
公钥
和
私钥
进行
加解密
的过程,并展示了如何通过自定义注解实现Controller层的
加解密
操作。
根据已有
RSA
私钥
串生成对应
公钥
及
加解密
实现
博客介绍了根据已有
RSA
私钥
串生成对应
公钥
及
加解密
的实现方法。可通过OpenSSL工具,将Base64编码的
私钥
字符串拼接成pem
私钥
,再拼接OpenSSL命令在安装该服务的机器上执行,得到pem
公钥
,复制其Base64编码串为加密密钥,还给出了
加解密
代码。
C#与java通过
RSA
互相
加解密
,支持分段
加解密
,支持长文本,支持
公钥
加密
私钥
解密,
私钥
加密
公钥
解密
本文介绍了一种使用C#和Java实现
RSA
加解密
互操作的方法,包括生成
公钥
和
私钥
对,以及如何在两种语言间进行加密和解密操作。通过代码示例详细展示了分段加密和解密的过程,适用于处理大文本。
RSA
双向
加解密
(
公钥
加密-
私钥
解密;
私钥
加密-
公钥
解密)
该博客介绍了如何使用
RSA
非对称加密算法实现服务A与服务B之间的安全通信。在不能互相持有对方密钥的情况下,通过各自生成
公钥
和
私钥
,实现了
公钥
加密和
私钥
解密,确保通信内容的安全。文中提供了Java代码示例,展示了如何生成、存储和使用
RSA
密钥对进行
加解密
操作。
C语言
70,037
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章