问这个问题的原因是:
我想给软件增加 注册码的功能, 我最终选了 rsa 非对称加密算法
但是我体验了一下, 发现 只能用 公钥 PUBLIC KEY 加密用户信息(到期时间,会员等级) ,
// 假设这是明文 { username:aaaa, level:2, endtime:2022-12-12 12:12:12 } 且只能用 私钥 PRIVATE KEY 来解密,得到原文
所以,我就考虑, 把 PRIVATE KEY 内嵌到软件内部
把 PUBLIC KEY 存在我自己私人电脑上的注册机内部;
然后,客户注册、付费以后,我就用我电脑的注册机,生成注册码(用 PUBLIC KEY 把明文信息加密)
然后,我把注册码 发给客户
// 假设注册码是这个 lbLeK+0MeLNXPm+MlbLeK+0MeLNXPm+MlbLeK+0MeLNXPm+MlbLeK+0MeLNXPm+M== 客户把注册码输入 软件, 软件利用 PRIVATE KEY 把密文,解密成 明文信息
但是我在探索的过程中, 看到一些网友说,openssl 是可以通过 PRIVATE KEY 得到 PUBLIC KEY 的, 如果真的这样的话,就会被人写出 注册机来
信息来源: https://segmentfault.com/q/1010000002932436/a-1020000002947602
我使用 python-rsa 生成的公钥私钥格式如下:
-----BEGIN RSA PRIVATE KEY----- MIICXwIBAAKBgQCGohHh3ypajwWHgFxbeUOZQehVDdjpXD+rA1RjoYIyA9fBuptv i5I8SuncRe0tkqKj5eYYtMgp4fjQ9SvFLjvjygrdPj+tzfefs7wiaYlxKaons3MT HCZRvfQ9+i5M6rdXGIcd4hQX3Og0EacNU3aeNW9f0XHqMaP5bQsNJ6HLSQIDAQAB AoGAPH25Vyk0GHhGXbl4xcjYbJXGU+Di4wcFvErEsfcxTlOXr32utRGa5Ogr50Kr 7FwEI2v6VIN1pAvaBdkCQi1CysQZ8hT4KFZtnaojIyIeJFXMCSpKpM7z106FEh/L 3mjeGGDLBamo0Pyjhg34rkEgDbci3QAIMb+nPZKFp1LbZGECRQCsTYp3AO3t7KWg Vn2bfJGAedOyRalNpAeWjj/SLHON08Ko9iKFG0g1HU05D+Ma7unlOwnrPDMonqxE tSMfZtcN8ZTnLQI9AMgIKIleej3VwiSWtUMFcJoKmTJgUcX0kDmdM9nbMnCrR5Sv AbNM1XqKyj8eVSjGYPYA8oFlvKjchKMGDQJEDPV0AYlHW8qdllaK8ePHibMf8dt9 ZUJ985vVPvhq5HLVxCFm7T3lC2GdyjngqcjoPH5ZO6D2dAqjCDPbZWQ1rm3J9i0C PE5Yy6/KPmzbvZfhI4vlpI3hGtHdYgn72UWHqhhpP19b5sR4q1zT+kVt+Psx4T8A PFf+VP2ToIovHRBRPQJECXhvoSzyL+QnY9nixOucF/oB97sqfC3WQwkcNYL4v4wK I5YOFZHgxRBmvflkAH6KPSKDrr0GPSlu/ZDwQetWvAyDUiU= -----END RSA PRIVATE KEY----- -----BEGIN RSA PUBLIC KEY----- MIGJAoGBAIaiEeHfKlqPBYeAXFt5Q5lB6FUN2OlcP6sDVGOhgjID18G6m2+LkjxK 6dxF7S2SoqPl5hi0yCnh+ND1K8UuO+PKCt0+P63N95+zvCJpiXEpqiezcxMcJlG9 9D36Lkzqt1cYhx3iFBfc6DQRpw1Tdp41b1/Rceoxo/ltCw0noctJAgMBAAE= -----END RSA PUBLIC KEY----- 由于我对算法是个新手, 所以,特来发帖,问问大家:
我这种格式的 公钥私钥,交换使用,会有风险吗?
私钥泄露,公钥我保存好, 别人能通过私钥,能逆向出公钥吗?
谢谢
