菜鸟教程小白 发表于 2022-12-11 20:28:16

ios - ECDSA secp256k1 key 对在 Swift 上签名


                                            <p><p>在这里,我通过一些虚拟 prvData 创建了私钥,然后创建了 2 个虚拟数据对象并尝试对 data1 和 data2 对象进行签名</p>

<pre><code>NSData *prvData = ;

NSData *data1 = ;
NSData *data2 = ;


NSData *sig1 = ;
NSData *sig2 = ;
</code></pre>

<p>在这里,sig1 和 sign2 对象值都相同,但它不应该发生。所以请如果有人做过这个签名问题,请告诉我,怎么办?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这些函数直接调用非托管 (C) 代码。输入值被认为与 key 大小相同:256 位或 32 字节。如果您提供的数量超过此数量,则只占用前 32 个字节。原因很简单:数据只是使用单个指针发送<em>而没有指定长度</em>。</p>

<p>所以基本上这段代码只有在你向它发送一个 32 字节的哈希值时才会起作用。我认为您只能使这项工作适用于 256 位散列或小于该值的散列。对于较大的散列,您可能必须在曲线的顺序上执行模减少。较小的散列可以<em>left-padded</em>零的最多32个字节以使它们工作(ECDSA是大端)。</p>

<p>您可能已经注意到对 <code>CKSecp256k1</code> 的调用中缺少哈希机制。如果你看一下代码,它肯定不会在内部执行它,即使输入被称为“消息”。这是一个专门用于比特币的低级 API,看起来。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - ECDSA secp256k1key 对在 Swift 上签名,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/51873672/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/51873672/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - ECDSA secp256k1 key 对在 Swift 上签名