以太坊的离线Hash和离线签名(基于C#)

这篇文章主要介绍了以太坊的离线Hash和离线签名(基于C#) ,文中通过代码以及文档配合进行讲解,很详细,它对在座的每个人的研究和工作具有很经典的参考价值。 如果需要,让我们与区块链资料网一起学习。

https://www.interchains.cc/22665.html

以太坊的离线Hash和离线签名(基于C#)是很好的区块链资料,他说明了区块链当中的经典原理,可以给我们提供资料,以太坊的离线Hash和离线签名(基于C#)学习起来其实是很简单的,

不多的几个较为抽象的概念也很容易理解,之所以很多人感觉以太坊的离线Hash和离线签名(基于C#)比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难

以太坊eth的离线Hash和离线签名(基于C#)

  • 离线签名
  • Nethereum

C#的离线签名

为什么要离线签名,主要就是安全,至于为什么安全这里不展开说。

以太坊ethsolidity的数据格式和常见编程的数据格式不一样,举个例子来说,solidity的uint256,在c#中如果要转换,需要这样的代码:

    /// <summary>     /// 把uint转换成符合Solidity函数参数类型的byte数组     /// </summary>     /// <param name="value"></param>     /// <returns></returns>     public static byte[] GetSolidityUint256(uint value)     {         return new byte[32]         {             0,0,0,0,0,             0,0,0,0,0,             0,0,0,0,0,             0,0,0,0,0,             0,0,0,0,0,             0,0,0,             (byte)((value >> 24) & 0xFF),             (byte)((value >> 16) & 0xFF),             (byte)((value >> 8) & 0xFF),             (byte)value,         };     }

那么,在c#中的hash要把数值转换成solidity对应的数值类型才能和solidity中的hash一样。

C#的hash计算要采用Org.BouncyCastle.Crypto.Digests.KeccakDigest. 签名可以采用NBitcoin类库,Nethereum类库也封装了签名,直接使用Nethereum.Signer.MessageSigner类就可以。

Nethereum类库做了大量的工作,调用以太坊ethgeth的API很容易和很方便。如果使用智能合约的代理类,其内部已经封装了离线签名的功能,使用起来很安全。但还是存在功能不完善的地方,例如没有封装whisper。

部分转自网络,侵权联系删除www.interchains.cchttps://www.interchains.cc/22665.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 以太坊的离线Hash和离线签名(基于C#)

提供最优质的资源集合

立即查看 了解详情