Solidity - 密码学函数



Solidity 也提供了内置的密码学函数。以下是重要方法:

  • keccak256(bytes memory) returns (bytes32) − 计算输入的 Keccak-256 哈希值。

  • ripemd160(bytes memory) returns (bytes20) − 计算输入的 RIPEMD-160 哈希值。

  • sha256(bytes memory) returns (bytes32) − 计算输入的 SHA-256 哈希值。

  • ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address) − 从椭圆曲线签名中恢复与公钥关联的地址,或在出错时返回零。函数参数对应于签名的 ECDSA 值:r - 签名的前 32 个字节;s: 签名的第二个 32 个字节;v: 签名的最后一个 1 个字节。此方法返回一个地址。

以下示例显示了在 Solidity 中使用密码学函数的方法。

示例

pragma solidity ^0.5.0;

contract Test {   
   function callKeccak256() public pure returns(bytes32 result){
      return keccak256("ABC");
   }  
}

使用Solidity 第一个应用章节中提供的步骤运行以上程序。

输出

0: bytes32: result 0xe1629b9dda060bb30c7908346f6af189c16773fa148d3366701fbaa35d54f3c8
广告