Solidity 提供了常用的加密函数。以下是一些重要函数:
keccak256(bytes memory) returns (bytes32)
计算输入的Keccak-256散列。sha256(bytes memory) returns (bytes32)
计算输入的SHA-256散列。ripemd160(bytes memory) returns (bytes20)
计算输入的RIPEMD-160散列。ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)
从椭圆曲线签名中恢复与公钥相关的地址,或在出错时返回零。函数参数对应于签名的ECDSA值: r – 签名的前32字节; s: 签名的第二个32字节; v: 签名的最后一个字节。这个方法返回一个地址。
下面的例子说明了加密函数的用法。
示例
pragma solidity ^0.5.0;
contract Test {
function callKeccak256() public pure returns(bytes32 result){
return keccak256("ABC");
}
}
可以参考Solidity – 第一个程序中的步骤,运行上述程序。
输出
0: bytes32: result 0xe1629b9dda060bb30c7908346f6af189c16773fa148d3366701fbaa35d54f3c8