我已经挣扎了一段时间了.这是我的情景.我正在尝试生成25个字符的软件产品密钥(如Microsoft风格的FFFFF-EEEEE-DDDDD-BBBBB-77777).我已经通过nonce(原始产品密钥)成功生成 - 根据这篇文章,我的最终产品密钥(在以24格式编码之前)应该恰好是15个字节(我的nonce为4个字节,我的数字签名为11个字节).
现在的问题是如何生成一个11字节的签名?我尝试使用当前最短的签名加密(ECC - 使用secp128r2曲线 - 它给我一个128位私钥).签名后,我的签名大小为80字节(由Java语句打印)
System.out.println("length: "+signedProductKeyBytes.length);
Run Code Online (Sandbox Code Playgroud)
我的问题是:
EC密钥大小(以位为单位)与生成的EC签名长度(以字节为单位)之间的关系究竟是什么?
例如,128位的EC密钥应该产生多少字节的签名大小?
我如何生成一个11字节的签名(顺便说一下,我确定在Windows XP时代没有EC密钥 - 所以MS没有使用EC - 有更好的方法吗?假设使用RSA 32位密钥或者其他的东西?)?
字符串的大小(在我的情况下,它只是9个字符的字符串,例如"123456789"被签名在签名的最后长度中起作用?
已经挣扎了一段时间,在网上到处搜索 - 通过大量的技术会谈回答 - 但没有具体回答我的问题(我得到的最近的是 RSA密钥的这篇文章)
我希望我得到一些快速反应 - 我的项目已经很晚了几周.多谢你们!