首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于使用非对称加密来验证注册的疑问,该怎么解决

2012-05-24 
关于使用非对称加密来验证注册的疑问假设这么一个情景。A是软件供应商,B是用户。A首先生成一对公钥(n, e)私

关于使用非对称加密来验证注册的疑问
假设这么一个情景。A是软件供应商,B是用户。A首先生成一对公钥(n, e)私钥(n, d)对,并将B的身份信息(如过期时间,硬盘序列号等,假设为str1)通过私钥(n, d)加密,生成注册信息str2。用户B在拿到str2后,通过公钥(n, e)进行解密,从而得到明文的注册信息。

对于这个流程,有一些疑问:
B在对str2解密,则需要有公钥(n, e),这个公钥是在客户端软件的代码里面写死还是说A在发送str2的时候一起发过去?如果是在程序里面写死的话,是不是太不方便了,因为每个用户申请一次都要修改一下源程序,不修改的话那所有用户的(n, e)都会是一样的,会不会有另外一个公钥(n2, d2)加密后的信息能被还原成明文呢,这样注册验证也就没用了;如果是后面传过去的话,那就是动态读取公钥的了,用户是不是可以自己写一个程序来生成另外一个公钥(n2, e2)和私钥(n2, d2),然后让程序使用(n2, e2)来解密(n2, d2)加密的字符串?这样的话注册验证完全没用了。

[解决办法]
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!

[解决办法]
公钥 就是公开的密钥啊, 有很多份是正常的啊
[解决办法]
私匙用于签名和解密,从来不用于加密,任何人都可能拥有公匙,任何人都能解密。

非对称软件注册流程:
一般软件里有个公匙,把机器码,用户名这些信息组合得到一个字符串, 私匙进行签名,发给用户,用户在软件里利用公匙验证签名,验证成功表示是软件作者发出来的

热点排行